Method and apparatus for reading data stored in flash memory by referring to binary digit distribution characteristics of bit sequences read from flash memory

ABSTRACT

A method for reading data stored in a flash memory includes at least the following steps: controlling the flash memory to perform a plurality of read operations upon a plurality of memory cells included in the flash memory; obtaining a plurality of bit sequences read from the memory cells, respectively, wherein the read operations read bits of a predetermined bit order from the memory cells by utilizing different control gate voltage settings; and determining readout information of the memory cells according to binary digit distribution characteristics of the bit sequences.

CROSS REFERENCE TO RELATED APPLICATIONS

This is a continuation of the co-pending U.S. application Ser. No.17/024,718 (filed on Sep. 18, 2020), which is a continuation of the U.S.application Ser. No. 16/178,612 (filed on Nov. 2, 2018), which is acontinuation of the U.S. application Ser. No. 15/672,318 (filed on Aug.9, 2017), which is a continuation of the U.S. application Ser. No.15/405,285 (filed on Jan. 12, 2017), which is a continuation of the U.S.application Ser. No. 15/170,952 (filed on Jun. 2, 2016), which is acontinuation of the U.S. application Ser. No. 14/957,563 (filed on Dec.2, 2015), which is a continuation of the U.S. application Ser. No.14/277,007 (filed on May 13, 2014), which is a continuation of the U.S.application Ser. No. 13/802,625 (filed on Mar. 13, 2013), which is acontinuation of the U.S. application Ser. No. 13/044,548 (filed on Mar.10, 2011), which claims the benefit of U.S. provisional application No.61/420,336 (filed on Dec. 7, 2010) and U.S. provisional application No.61/441,635 (filed on Feb. 10, 2011). The entire content of the relatedapplications is incorporated herein by reference.

BACKGROUND OF THE INVENTION 1. Field of the Invention

The disclosed embodiments of the present invention relate to readingdata stored in a flash memory, and more particularly, to a method andmemory controller for reading data stored in a flash memory by referringto binary digit distribution characteristics of bit sequences read frommemory cells of the flash memory.

2. Description of the Prior Art

Flash memory can be electrically erased and programmed for data storage.It is widely used in memory cards, solid-state drives, portablemultimedia players, etc. As the flash memory is a non-volatile memory,no power is needed to maintain the information stored in the flashmemory. Besides, the flash memory offers fast read access and bettershock resistance. These characteristics explain the popularity of theflash memory.

The flash memories may be categorized into NOR-type flash memories andNAND-type flash memories. Regarding the NAND flash memory, it hasreduced erasing and programming time and requires less chip area percell, thus allowing greater storage density and lower cost per bit thanthe NOR flash memory. In general, the flash memory stores data in anarray of memory cells made from floating-gate transistors. Each memorycell can store one bit of information or more than one bit ofinformation by adequately controlling the number of electrical charge onits floating gate to configure the threshold voltage required forturning on the memory cell made of a floating-gate transistor. In thisway, when one or more predetermined control gate voltages are applied toa control gate of the floating-gate transistor, the conductive status ofthe floating-gate transistor would indicate the binary digit(s) storedby the floating-gate transistor.

However, due to certain factors, the number of electrical chargeoriginally stored on one flash memory cell may be affected/disturbed.For example, the interference presented in the flash memory may beoriginated from write (program) disturbance, read disturbance, and/orretention disturbance. Taking a NAND flash memory including memory cellseach storing more than one bit of information for example, one physicalpage includes multiple logical pages, and each of the logical pages isread by using one or more control gate voltages. For instance, regardingone flash memory cell which is configured to store three bits ofinformation, the flash memory cell may have one of eight possible states(i.e., electrical charge levels) corresponding to different electricalcharge amounts (i.e., different threshold voltages), respectively.However, due to the increase of the program/erase (P/E) count and/or theretention time, the threshold voltage distribution of memory cells inthe flash memory may be changed. Thus, using original control gatevoltage setting (i.e., threshold voltage setting) to read the storedbits from the memory cell may fail to obtain the correct storedinformation due to the changed threshold voltage distribution.

SUMMARY OF THE INVENTION

In accordance with exemplary embodiments of the present invention, amethod and memory controller for reading data stored in a flash memoryby referring to binary digit distribution characteristics of bitsequences read from memory cells of the flash memory are proposed tosolve the above-mentioned problem.

According to a first aspect of the present invention, an exemplarymethod for reading data stored in a flash memory is disclosed. Theexemplary method includes: controlling the flash memory to perform aplurality of read operations upon a plurality of memory cells includedin the flash memory; obtaining a plurality of bit sequences read fromthe memory cells, respectively, wherein the read operations read bits ofa predetermined bit order from the memory cells by utilizing differentcontrol gate voltage settings; and determining readout information ofthe memory cells according to binary digit distribution characteristicsof the bit sequences.

According to a second aspect of the present invention, an exemplarymethod of accessing data in a flash memory including a plurality ofmemory cells is disclosed. The exemplary method includes: determiningbinary digit distribution characteristics of bit sequences read from theplurality of memory cells; and determining readout information inaccordance with the binary digit distribution characteristics.

According to a third aspect of the present invention, an exemplaryapparatus for reading data stored in a flash memory having a pluralityof memory cells is disclosed. The exemplary apparatus includes: areceiver for receiving a plurality of bit sequences read from theplurality of memory cells; and a controller coupled to the receiver forcausing the flash memory to perform a read operation at each of theplurality of memory cells and for determining readout information fromthe plurality of memory cells in accordance with binary digitdistribution characteristics of the plurality of bit sequences.

According to a fourth aspect of the present invention, an exemplarymethod for reading data stored in a flash memory is disclosed. Theexemplary method includes: controlling the flash memory to perform aplurality of read operations upon a plurality of memory cells includedin the flash memory; obtaining a plurality of bit sequences read fromthe memory cells; obtaining a mapping rule according to the bitsequences; and obtaining readout information of the memory cellsaccording to the mapping rule and the bit sequences.

These and other objectives of the present invention will no doubt becomeobvious to those of ordinary skill in the art after reading thefollowing detailed description of the preferred embodiment that isillustrated in the various figures and drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram illustrating a memory system according to a firstexemplary embodiment of the present invention.

FIG. 2 is a diagram illustrating a first exemplary threshold voltagedistribution of a target physical page to be read.

FIG. 3 is a diagram illustrating a second exemplary threshold voltagedistribution of the target physical page to be read.

FIG. 4 is a diagram illustrating an exemplary LSB reading operation ofreading a soft bit (i.e., a soft information value) from a memory cellof the flash memory.

FIG. 5 is a diagram illustrating a mapping operation performed by thedetermining unit shown in FIG. 1 for determining updated specific bitsequences.

FIG. 6 is a diagram illustrating an exemplary CSB reading operation ofreading a soft bit (i.e., a soft information value) from a memory cellof the flash memory.

FIG. 7 is a diagram illustrating an exemplary MSB reading operation ofreading a soft bit (i.e., a soft information value) from a memory cellof the flash memory.

FIG. 8 is a diagram illustrating another exemplary CSB reading operationof reading a soft bit (i.e., a soft information value) from a memorycell of the flash memory.

FIG. 9 is a diagram illustrating a memory system according to a secondexemplary embodiment of the present invention.

FIG. 10 is a diagram illustrating the adjustment made to the controlgate voltage used for reading LSB data according to a first embodimentof the present invention.

FIG. 11 is a diagram illustrating the operation of determining ashifting direction of the control gate voltage for finding a bettercontrol gate voltage used for reading LSB data according to a firstembodiment of the present invention.

FIG. 12 is a diagram illustrating the adjustment made to the controlgate voltage used for reading LSB data according to a second embodimentof the present invention.

FIG. 13 is a diagram illustrating the operation of determining ashifting direction of the control gate voltage for finding a bettercontrol gate voltage used for reading LSB data according to a secondembodiment of the present invention.

FIG. 14 is a diagram illustrating the adjustment made to one of thecontrol gate voltages used for reading CSB data according to anembodiment of the present invention.

FIG. 15 is a diagram illustrating the adjustment made to the other ofthe control gate voltages used for reading CSB data according to anembodiment of the present invention.

FIG. 16 is a diagram illustrating the adjustment made to both controlgate voltages used for reading CSB data according to an embodiment ofthe present invention.

FIG. 17 is a diagram illustrating the operation of determining shiftingdirections of the control gate voltages for finding better control gatevoltages used for reading CSB data according to an embodiment of thepresent invention.

FIG. 18 is a diagram illustrating the adjustment made to one of thecontrol gate voltages used for reading MSB data according to anembodiment of the present invention.

FIG. 19 is a diagram illustrating the adjustment made to another of thecontrol gate voltages used for reading MSB data according to anembodiment of the present invention.

FIG. 20 is a diagram illustrating the adjustment made to yet another ofthe control gate voltages used for reading MSB data according to anembodiment of the present invention.

FIG. 21 is a diagram illustrating the adjustment made to a remaining oneof the control gate voltages used for reading MSB data according to anembodiment of the present invention.

FIG. 22 is a diagram illustrating the adjustment made to two of thecontrol gate voltages used for reading MSB data according to anembodiment of the present invention.

FIG. 23 is a diagram illustrating the adjustment made to the other twoof the control gate voltages used for reading MSB data according to anembodiment of the present invention.

DETAILED DESCRIPTION

Certain terms are used throughout the description and following claimsto refer to particular components. As one skilled in the art willappreciate, manufacturers may refer to a component by different names.This document does not intend to distinguish between components thatdiffer in name but not function. In the following description and in theclaims, the terms “include” and “comprise” are used in an open-endedfashion, and thus should be interpreted to mean “include, but notlimited to . . . ”. Also, the term “couple” is intended to mean eitheran indirect or direct electrical connection. Accordingly, if one deviceis coupled to another device, that connection may be through a directelectrical connection, or through an indirect electrical connection viaother devices and connections.

The generalized conception of the present invention is to read datastored in a flash memory by controlling the flash memory to perform aplurality of read operations upon each of a plurality of memory cellsincluded in the flash memory (it should be noted that the readoperations read bits of a predetermined bit order from each of thememory cells as one of the bit sequences by utilizing different controlgate voltage settings), obtaining a plurality of bit sequences read fromthe memory cells, respectively, and determining readout information ofthe memory cells according to binary digit distribution characteristicsof the bit sequences. Further details are described as follows.

Please note that the threshold voltage distribution illustrated in theaccompanying figures and values of the control gate voltages mentionedhereinafter are for illustrative purposes only, and are not meant to belimitations of the present invention. Besides, for simplicity andclarity, reading multiple bits stored by memory cells of one physicalpage in a NAND-type flash memory is taken as an example for illustratingtechnical features of the present invention. However, no matter whetherthe flash memory is a NAND-type flash memory or a flash memory of othertype (e.g., a NOR-type flash memory), the spirit of the presentinvention is obeyed as long as binary digit distribution characteristicsof bit sequences read from memory cells are used for determining readoutinformation of the memory cells.

Please refer to FIG. 1, which is a diagram illustrating a memory systemaccording to a first exemplary embodiment of the present invention. Theexemplary memory system 100 includes a flash memory 102 and a memorycontroller 104. In this exemplary embodiment, the flash memory 102 maybe a NAND-type flash memory including a plurality of physical pagesLSBP_0, P_1, P_2, . . . , P_N, wherein each of the physical pagesP_0-P_N includes a plurality of memory cells (e.g., floating-gatetransistors) 103. For example, as to a target physical page P_0 to beread, it has memory cells M_0-M_K included therein. To read the datastored in the memory cells M_0-M_K of the target physical page P_0, thecontrol gate voltages VG_0-VG N should be properly set. For example, thecontrol gate voltages VG 1-VG N should be properly set to ensure thatall of the memory cells (floating-gate transistors) 103 of the physicalpages P_1-P_N are conductive. In a case where each of the memory cell103 is configured to store N bits (e.g., three bits including a leastsignificant bit (LSB), a central significant bit (CSB), and a mostsignificant bit (MSB)), the flash memory 102 sets the control gatevoltage VG_0 to (2^(N)−1) voltage levels for identifying all of the Nbits of each memory cell 103 of the target physical page P_0.

Please refer to FIG. 2, which is a diagram illustrating a firstexemplary threshold voltage distribution of the physical page P_0 to beread. The memory cells M_0-M_K of the physical page P_0 may includememory cells with floating gates programmed to have an electrical chargelevel L0 (i.e., (MSB, CSB, LSB)=(1, 1, 1)), memory cells with floatinggates programmed to have an electrical charge level L1 (i.e., (MSB, CSB,LSB)=(0, 1, 1)), memory cells with floating gates programmed to have anelectrical charge level L2 (i.e., (MSB, CSB, LSB)=(0, 0, 1)), memorycells with floating gates programmed to have an electrical charge levelL3 (i.e., (MSB, CSB, LSB)=(1, 0, 1)), memory cells with floating gatesprogrammed to have an electrical level L4 (i.e., (MSB, CSB, LSB)=(1, 0,0)), memory cells with floating gates programmed to have an electricallevel L5 (i.e., (MSB, CSB, LSB)=(0, 0, 0)), memory cells with floatinggates programmed to have an electrical charge level L6 (i.e., (MSB, CSB,LSB)=(0, 1, 0)), and memory cells with floating gates programmed to havean electrical charge level L7 (i.e., (MSB, CSB, LSB)=(1, 1, 0)).

To identify LSBs of the memory cells M_0-M_K, the flash memory 102 setsthe control gate voltage VG_0 by the threshold voltage VT_4 shown inFIG. 2. Next, the conductive state of each memory cell of the targetphysical page P_0 indicates whether the memory cell has an LSB being “0”or “1”. In this exemplary embodiment, when a memory cell of the physicalpage P_0 is turned on by the threshold voltage VT_4 applied to itscontrol gate, the flash memory 102 will output one binary digit “1”representative of the LSB; otherwise, the flash memory 102 will outputthe other binary digit “0” representative of the LSB.

To identify CSBs of the memory cells M_0-M_K, the flash memory 102 setsthe control gate voltage VG_0 by the threshold voltages VT_2 and VT_6shown in FIG. 2, respectively. Similarly, the conductive state of eachmemory cell of the target physical page P_0 indicates whether the memorycell 103 has a CSB being “0” or “1”. In this exemplary embodiment, whenthe memory cell is turned on by any of the threshold voltages VT_2 andVT_6 applied to its control gate, the flash memory 102 will output thebinary digit “1” representative of the CSB; when the memory cell is notturned on by the threshold voltage VT_2 applied to its control gate andis turned on by the other threshold voltage VT_6 applied to its controlgate, the flash memory 102 will output the binary digit “0”representative of the CSB; and when the memory cell is neither turned onby the threshold voltage VT_2 applied to its control gate nor turned onby the other threshold voltage VT_6 applied to its control gate, theflash memory 102 will output the binary digit “1” representative of theCSB.

To identify MSBs of the memory cells M_0-M_K, the flash memory 102 setsthe control gate voltage VG_0 by the threshold voltages VT_1, VT_3,VT_5, and VT_7 shown in FIG. 2, respectively. Similarly, the conductivestate of each memory cell of the target physical page P_0 indicateswhether the memory cell has an MSB being “0” or “1”. In this exemplaryembodiment, when the memory cell is turned on by any of the thresholdvoltages VT_1, VT_3, VT_5, and VT_7 applied to its control gate, theflash memory 102 will output the binary digit “1” representative of theMSB; when the memory cell is not turned on by the threshold voltage VT_1applied to its control gate and is turned on by any of the thresholdvoltages VT_3, VT_5, and VT_7 applied to its control gate, the flashmemory 102 will output the binary digit “0” representative of the MSB;when the memory cell is not turned on by any of the threshold voltagesVT_1 and VT_3 applied to its control gate and is turned on by any of thethreshold voltages VT_5 and VT_7 applied to its control gate, the flashmemory 102 will output the binary digit “1” representative of the MSB;when the memory cell is not turned on by any of the threshold voltagesVT_1, VT_3, and VT_5 applied to its control gate and is turned on by thethreshold voltage VT_7 applied to its control gate, the flash memory 102will output the binary digit “0” representative of the MSB; and when thememory cell is not turned on by any of the threshold voltages VT_1,VT_3, VT_5, and VT_7 applied to its control gate, the flash memory 102will output the binary digit “1” representative of the MSB;

However, the threshold voltage distribution shown in FIG. 2 may bechanged to become another threshold voltage distribution die to certainfactors such as the increase of the P/E count and/or the retention time.For example, the lobe-shaped distribution corresponding to eachelectrical charge level may be widened and/or shifted. Please refer toFIG. 3, which is a diagram illustrating a second exemplary thresholdvoltage distribution of the physical page P_0 to be read. As can be seenfrom FIG. 3, the threshold voltage distribution is different from thatshown in FIG. 2. Setting the control gate voltage VG_0 by theaforementioned threshold voltages VT_1-VT_7 may fail to obtain thecorrect LSBs, CSBs, and MSBs of the memory cells M_0-M_K of the targetphysical page P_0. Specifically, when the memory cells M_0-M_K have thethreshold voltage distribution shown in FIG. 3, new threshold voltagesVT_1′-VT_7′ should be used for obtaining the stored informationcorrectly. As a result, an error correction code (ECC) operationperformed upon the codeword read from memory cells M_0-M_K may fail dueto uncorrectable errors presented in the codeword. In this exemplaryembodiment, the memory controller 104 is devised to adaptively track thethreshold voltage distribution for reducing/eliminating uncorrectableerrors presented in the codeword read from memory cells of the physicalpage.

Please refer to FIG. 1 again. The memory controller 104 is implementedto control access (read/write) of the flash memory 102, and includes,but is not limited to, a control logic 106 having a control unit 112, adetermining unit 114, and an identifying unit 116 included therein, areceiving circuit 108, and an ECC circuit 110. Please note that only theelements pertinent to the technical features of the present inventionare shown in FIG. 1. That is, the memory controller 104 may includeadditional elements to support other functionality. Generally, whenreceiving a read request for data stored in the memory cells M_0-M_K ofthe target physical page P_0, the control logic 106 is operative forcontrolling the flash memory 102 to read requested data. Next, when theflash memory 102 successfully identifies all bits stored in each of thememory cells M_0-M_K, the readout information which includes identifiedbits of the memory cells M_0-M_K is received by the receiving circuit108. As shown in FIG. 1, the receiving circuit 108 has a storage device(e.g., a memory device) 118 acting as a data buffer for temporarilystoring the readout information generated from the flash memory 102. Asknown to those skilled in the art, part of the memory cells 103 of onephysical page is utilized for storing ECC information (e.g., an ECCcode). Thus, the ECC circuit 110 is operative to perform an ECCoperation upon the readout information (e.g., a codeword) read from thephysical page. In this exemplary embodiment, the ECC circuit 110includes an ECC detector 120 and an ECC corrector 122. The ECC detector120 is implemented for checking the correctness of the readoutinformation, thereby detecting the existence of any error bits. Whennotified by the ECC detector 120, the ECC corrector 122 is operative forcorrecting error bits found in the checked readout information. However,when the number of error bits existing in the readout informationexceeds a maximum number of error bits that can be corrected by the ECCcorrector 122, the ECC corrector 122 indicates that the readoutinformation includes uncorrectable error bits. Thus, the control logic106 will enable the threshold voltage distribution tracking mechanismproposed in the present invention to determine the readout informationwhich can pass the ECC parity check performed by the ECC circuit 110.Details are described as below.

In this exemplary embodiment, the ECC circuit 110 may be implemented bya low density parity-check (LDPC) decoder. The control logic 106controls the flash memory 102 to provide soft information to be decodedby the LDPC decoder. In other words, the aforementioned readoutinformation generated from reading the memory cells M_0-M_K is softinformation. Therefore, under the control of the control logic 106, theflash memory 102 outputs multiple binary digits to serve as one soft bitread from each of the memory cells M_0-M_K. Specifically, the controllogic 106 is arranged for controlling the flash memory 102 to perform aplurality of read operations (e.g., seven read operations) upon each ofthe memory cells M_0-M_K of the target physical page P_0 when readingLSB data, CSB data, or MSB data. Please note that each read operationperformed upon the memory cell may utilize a control gate voltagesetting including one or more control gate voltages applied to a controlgate of the memory cell; in addition, different read operations mayutilize different control gate voltage settings. For example, a readoperation for LSB data utilizes a gate voltage setting including onecontrol gate voltage, a read operation for CSB data utilizes a gatevoltage setting including two control gate voltages, and a readoperation for MSB data utilizes a gate voltage setting including fourcontrol gate voltages. The receiving circuit 108 is coupled to thecontrol logic 106, and arranged for obtaining a plurality of bitsequences BS_0, BS_1, . . . , BS_K read from the memory cells M_0-M_K,respectively, wherein the read operations read bits of a predeterminedbit order (e.g., LSBs, CSBs, or MSBs) from each of the memory cellsM_0-M_K as one of the bit sequences by utilizing different control gatevoltage settings, and the bit sequences BS_0-BS_K may be buffered in thestorage device 118 of the receiving circuit 108 for further processing.

Please refer to FIG. 4, which is a diagram illustrating an exemplary LSBreading operation of reading a soft bit (i.e., a soft information value)from a memory cell of the flash memory 102. In accordance with theexemplary threshold voltage distributions shown in FIG. 2 and FIG. 3, amemory cell with any of the electrical charge levels L0-L3 would storeLSB=1, and a memory cell with any of the electrical charge levels L4-L7would store LSB=0. In this exemplary embodiment, the control unit 112determines an initial control gate voltage V_(LSB) and a voltage spacingD, and then controls the flash memory 102 to perform seven readoperations upon each of the memory cells M_0-M_K. Based on the voltageadjusting order OD1, the flash memory 102 sets the control gate voltageVG_0 by V_(LSB), V_(LSB)+D, V_(LSB)−D, V_(LSB)+2D, V_(LSB)−2D,V_(LSB)+3D, V_(LSB)−3D, sequentially. Therefore, each of the bitsequences BS_0-BS_M would have seven binary digits sequentially obtaineddue to the applied control gate voltages V_(LSB), V_(LSB)+D, V_(LSB)−D,V_(LSB)+2D, V_(LSB)−2D, V_(LSB)+3D and V_(LSB)−3D. Please note that eachof the bit sequences BS_0-BS_M acts as a soft bit representative of thesoft information read from a memory cell, and the binary digit obtaineddue to the initial control gate voltage V_(LSB) may serve as a sign bit(i.e., a hard bit value).

In this exemplary embodiment, each bit sequence may have one of eightpossible binary digit combinations BS1-BS8. When the electrical chargecurrently stored on the floating gate of the memory cell makes thethreshold voltage of the memory cell higher than V_(LSB)+3D, the bitsequence read from the memory cell would have the binary digitcombination BS8=“0000000”. When the electrical charge currently storedon the floating gate of the memory cell makes the threshold voltage ofthe memory cell located between V_(LSB)+2D and V_(LSB)+3D, the bitsequence read from the memory cell would have the binary digitcombination BS7=“0000010”. When the electrical charge currently storedon the floating gate of the memory cell makes the threshold voltage ofthe memory cell located between V_(LSB)+D and V_(LSB)+2D, the bitsequence read from the memory cell would have the binary digitcombination BS6=“0001010”. When the electrical charge currently storedon the floating gate of the memory cell makes the threshold voltage ofthe memory cell located between V_(LSB) and V_(LSB)+D, the bit sequenceread from the memory cell would have the binary digit combinationBS5=“0101010”. When the electrical charge currently stored on thefloating gate of the memory cell makes the threshold voltage of thememory cell lower than V_(LSB)−3D, the bit sequence read from the memorycell would have the binary digit combination BS1=“1111111”. When theelectrical charge currently stored on the floating gate of the memorycell makes the threshold voltage of the memory cell located betweenV_(LSB)−2D and V_(LSB)−3D, the bit sequence read from the memory cellwould have the binary digit combination BS2=“1111110”. When theelectrical charge currently stored on the floating gate of the memorycell makes the threshold voltage of the memory cell located betweenV_(LSB)−D and V_(LSB)−2D, the bit sequence read from the memory cellwould have the binary digit combination BS3=“1111010”. When theelectrical charge currently stored on the floating gate of the memorycell makes the threshold voltage of the memory cell located betweenV_(LSB) and V_(LSB)−D, the bit sequence read from the memory cell wouldhave the binary digit combination BS4=“1101010”.

When all of the binary digits included in a bit sequence are 1's, thismeans that the corresponding memory cell has the electrical charge levelL0, L1, L2, or L3, and the reliability of LSB=1 may be high. When all ofthe binary digits included in a bit sequence are 0's, this means thatthe corresponding memory cell has the electrical charge level L5, L6,L7, or L8, and the reliability of LSB=0 may be high. However, when a bitsequence has different binary digits “0” and “1” included therein, thismeans that the corresponding memory cell has the electrical charge levelL3 or L4. As the threshold voltage of the corresponding memory cell isbetween V_(LSB)−3D and V_(LSB)+3D, the reliability of LSB=1/LSB=0 may below due to the fact that the error probability may be high. For example,a memory cell which originally stores LSB=0 would have an amount ofstored electrical charge corresponding to the electrical charge level L4to make the threshold voltage higher than V_(LSB)+3D. However, when theP/E count/retention time is increased, the amount of stored electricalcharge is changed, which may make the threshold voltage lower thanV_(LSB). Similarly, a memory cell which originally stores LSB=1 wouldhave an amount of stored electrical charge corresponding to theelectrical charge level L3 to make the threshold voltage lower thanV_(LSB)−3D. However, when the P/E count/retention time is increased, theamount of stored electrical charge is changed, which may make thethreshold voltage higher than V_(LSB). To put it simply, when thethreshold voltage distribution is changed, a memory cell whichoriginally stores LSB=1 may be erroneously regarded as a memory cellwhich stores LSB=0, and a memory cell which originally stores LSB=0 maybe erroneously regarded as a memory cell which stores LSB=1.

Therefore, the bit sequences each having one of the binary digitcombinations BS2-BS7 should be monitored to track the threshold voltagedistribution variation around the initial control gate voltage V_(LSB)(i.e., the threshold voltage distribution variation between theelectrical charge levels L3 and L4). The identifying unit 116 istherefore arranged for identifying a specific bit sequence of at leastone specific memory cell, wherein each specific bit sequence hasdifferent binary digits “1” and “0” included therein. The determiningunit 114 is coupled to the identifying unit, and arranged fordetermining an updated bit sequence of the at least one specific memorycell according to at least the specific bit sequence. By way of example,the determining unit 114 determines the updated bit sequence of the atleast one specific memory cell by mapping the specific bit sequence tothe updated bit sequence.

Please refer to FIG. 5, which is a diagram illustrating a mappingoperation performed by the determining unit 114 shown in FIG. 1 fordetermining updated specific bit sequences. The bit sequences BS_0-BS_Kgenerated from memory cells M_0-M_K of the target physical page P_0 arealso stored into the storage device 108 acting as a data buffer. Whenthe ECC corrector 122 indicates that the bit sequences BS_0-BS_K includeuncorrectable error bits, the identifying unit 116 is operative tomonitor the bit sequences BS_0-BS_K and identify specific bit sequenceseach having different binary digits “0” and “1” included therein (i.e.,specific bit sequences each having the binary digit combination BS2,BS3, BS4, BSS, BS6, or BS7). In this exemplary embodiment, thedetermining unit 114 determines a mapping rule according to the specificbit sequences identified by the identifying unit 116. For example, thedetermining unit 114 may count specific bit sequences having the binarydigit combinations BS2, BS3, BS4, BS5, BS6, and BS7 and then derive ahistogram shown in FIG. 5. As can be seen from the illustratedhistogram, the local minimum of the threshold voltage distributioncorresponds to the shifted control gate voltage V_(LSB)−D rather thanthe initial control gate voltage V_(LSB), implying that the initialcontrol gate voltage V_(LSB) is no longer the optimum control gatevoltage for identifying LSBs of memory cells due to change of thethreshold voltage distribution. Regarding the changed threshold voltagedistribution, the shifted control gate voltage V_(LSB)−D would be abetter control gate voltage for identifying LSBs of memory cells.Therefore, based on the histogram of the specific bit sequencesidentified by the identifying unit 116, the determining unit 114 iscapable of determining the desired mapping rule. For example, inaccordance with the relationship between the initial control gatevoltage V_(LSB) and the shifted control gate voltage V_(LSB)−D, themapping rule will define that each specific bit sequence having thebinary digit combination BS2 should be adjusted to have the binary digitcombination BS3 (i.e., mapped to the binary digit combination BS3), eachspecific bit sequence having the binary digit combination BS3 should beadjusted to have the binary digit combination BS4 (i.e., mapped to thebinary digit combination BS4), each specific bit sequence having thebinary digit combination BS4 should be adjusted to have the binary digitcombination BS5 (i.e., mapped to the binary digit combination BS5), eachspecific bit sequence having the binary digit combination BS5 should beadjusted to have the binary digit combination BS6 (i.e., mapped to thebinary digit combination BS6), each specific bit sequence having thebinary digit combination BS6 should be adjusted to have the binary digitcombination BS7 (i.e., mapped to the binary digit combination BS7), andeach specific bit sequence having the binary digit combination BS7should be adjusted to have the binary digit combination BS8 (i.e.,mapped to the binary digit combination BS8). In this way, the errorprobability of the updated specific bit sequence is effectively lowereddue to the adjustment made to the original binary digit combination.

Next, the bit sequences BS_0-BS_K with one or more bit sequencesupdated/adjusted by the determining unit 114 according to the mappingrule are processed by the ECC circuit (e.g., an LDPC decoder) 110 again.As the number of error bits can be reduced by the determining unit 114collaborating with the identifying unit 116, the ECC circuit 110 mayhave chance to successfully correct any error bits found in thecurrently processed readout information (i.e., soft information) of thephysical page P_0. When the ECC corrector 122 indicates that the decodedresult generated from the ECC circuit 110 is error-free, the readoperation of reading LSB data of the memory cells M_0-M_K of the targetphysical page P_0 is accomplished. On the other hand, when the ECCcorrector 122 indicates that the currently processed readout informationstill contains uncorrectable error bits, the determining unit 116 mayfurther adjust the mapping rule for reducing the error probability ofthe specific bit sequence identified by the identifying unit 116.

In above exemplary embodiment, the determining unit 114 performs themapping operation to update the specific bit sequences identified by theidentifying unit 116. However, this is for illustrative purposes only,and is not meant to be a limitation of the present invention. In analternative design, after the determining unit 144 determines that theshifted control gate voltage V_(LSB)−D should be the optimum controlgate voltage for identifying LSBs of memory cells M_0-M_K, the controlunit 106 may be configured to set the initial control gate voltage byV_(LSB)−D, and then control the flash memory 102 to perform seven readoperations upon each of the memory cells M_0-M_K according to theupdated initial control gate voltage V_(LSB)−D and the voltage spacingD. Based on the same voltage adjusting order OD1, the flash memory 102sets the control gate voltage VG_0 by V_(LSB)−D, V_(LSB), V_(LSB)−2D,V_(LSB)+D, V_(LSB)−3D, V_(LSB)+2D, V_(LSB)−4D, sequentially. Therefore,the flash memory 102 outputs new bit sequences BS_0-BS_M, wherein eachof the new bit sequences BS_0-BS_M has seven binary digits sequentiallyobtained due to the control gate voltages V_(LSB)−D, V_(LSB),V_(LSB)−2D, V_(LSB)+D, V_(LSB)−3D, V_(LSB)+2D and V_(LSB)−4D. Next, theECC circuit (e.g., an LDPC decoder) 110 processes the new bit sequencesBS_0-BS_M (i.e., an updated codeword read from the physical page P_0) tocorrect any error bits found in the new bit sequences BS_0-BS_M. Thesame objective of generating readout information which can pass the ECCparity check is achieved.

Briefly summarized, in a case where each read operation utilizes onlyone control gate voltage applied to a control gate of each of the memorycells, and the control gate voltage utilized by one read operation isdifferent from the control gate voltage utilized by another readoperation, the identifying unit 116 is implemented for identifying anyspecific bit sequence having different binary digits included therein,and the determining unit 114 is implemented for determining updatedspecific bit sequence(s) according to the specific bit sequence(s)identified by the identifying unit 116. In one exemplary design, thedetermining unit 114 determines the updated bit sequences by performinga mapping operation upon the specific bit sequences. In anotherexemplary design, the determining unit 114 determines a new initialcontrol gate voltage, and the control unit 112 refers to the new initialcontrol gate voltage to control the flash memory 102 to output bitsequences having updated specific bit sequence(s) included therein.

Please refer to FIG. 6, which is a diagram illustrating an exemplary CSBreading operation of reading a soft bit (i.e., a soft information value)from a memory cell of the flash memory 102. In accordance with theexemplary threshold voltage distributions shown in FIG. 2 and FIG. 3, amemory cell with any of the electrical charge levels L0, L1, L6, and L7would store CSB=1, and a memory cell with any of the electrical chargelevels L2-L5 would store CSB=0. In this exemplary embodiment, thecontrol unit 112 determines two initial control gate voltages V_(CSB1),V_(CSB2) and a voltage spacing D, and then controls the flash memory 102to perform seven read operations upon each of the memory cells M_0-M_K.Based on the voltage adjusting order OD1, the flash memory 102 sets thecontrol gate voltage VG_0 by V_(CSB1), V_(CSB1)+D, V_(CSB1)−D,V_(CSB1)+2D, V_(CSB1)−2D, V_(CSB1)+3D, and V_(CSB1)−3D, sequentially.Besides, based on the voltage adjusting order OD2 that is different fromthe voltage adjusting order OD1, the flash memory 102 sets the controlgate voltage VG_0 by V_(CSB2), V_(CSB2)−D, V_(CSB2)+D, V_(CSB2)−2D,V_(CSB2)+2D, V_(CSB2)−3D, and V_(CSB2)+3D, sequentially. Specifically,the flash memory 102 utilizes two control gate voltages V_(CSB1) andV_(CSB2) to determine the first binary digit of the bit sequence,utilizes two control gate voltages V_(CSB1)+D and V_(CSB2)−D todetermine the second binary digit of the bit sequence, utilizes twocontrol gate voltages V_(CSB1)−D and V_(CSB2)+D to determine the thirdbinary digit of the bit sequence, utilizes two control gate voltagesV_(CSB1)+2D and V_(CSB2)−2D to determine the fourth binary digit of thebit sequence, utilizes two control gate voltages V_(CSB1)−2D andV_(CSB2)+2D to determine the fifth binary digit of the bit sequence,utilizes two control gate voltages V_(CSB1)+3D and V_(CSB2)−3D todetermine the sixth binary digit of the bit sequence, and utilizes twocontrol gate voltages V_(CSB1)−3D and V_(CSB2)+3D to determine theseventh binary digit of the bit sequence. Please note that the voltagespacing D may be adjustable, and the voltage spacing used for adjustingthe control gate voltage V_(CSB1) in the voltage adjusting order OD1 maybe different from the voltage spacing used for adjusting the controlgate voltage V_(CSB2) in the voltage adjusting order OD2.

As mentioned above, the flash memory 102 is capable of determining ahard bit value (i.e., CSB) of each of the memory cells M_0-M_K by theinitial control gate voltages V_(CSB1) and V_(CSB2). Therefore, each ofthe bit sequences BS_0-BS_M has seven binary digits obtained due to thecontrol gate voltages V_(CSB1), V_(CSB1)+D, V_(CSB1)−D, V_(CSB1)+2D,V_(CSB1)−2D, V_(CSB1)+3D, V_(CSB1)−3D, V_(CSB2), V_(CSB2)−D, V_(CSB2)+D,V_(CSB2)−2D, V_(CSB2)+2D, V_(CSB2)−3D, and V_(CSB2)+3D. Please note thateach of the bit sequences BS_0-BS_M acts as a soft bit representative ofthe soft information read from a memory cell, and the binary digitobtained due to the initial control gate voltage V_(CSB1) or V_(CSB2)may serve as a sign bit (i.e., a hard bit value).

Similarly, each bit sequence may have one of eight possible binary digitcombinations BS1-BS8. When the electrical charge currently stored on thefloating gate of the memory cell makes the threshold voltage of thememory cell higher than V_(CSB2)+3D or lower than V_(CSB1)−3D, the bitsequence read from the memory cell would have the binary digitcombination BS1=“1111111”. When the electrical charge currently storedon the floating gate of the memory cell makes the threshold voltage ofthe memory cell located between V_(CSB2)+2D and V_(CSB2)+3D or locatedbetween V_(CSB1)−2D and V_(CSB1)−3D, the bit sequence read from thememory cell would have the binary digit combination BS2=“1111110”. Whenthe electrical charge currently stored on the floating gate of thememory cell makes the threshold voltage of the memory cell locatedbetween V_(CSB2)+D and V_(CSB2)+2D or located between V_(CSB1)−D andV_(CSB1)−2D, the bit sequence read from the memory cell would have thebinary digit combination BS3=“1111010”. When the electrical chargecurrently stored on the floating gate of the memory cell makes thethreshold voltage of the memory cell located between V_(CSB2) andV_(CSB2)+D or located between V_(CSB1) and V_(CSB1)−D, the bit sequenceread from the memory cell would have the binary digit combinationBS4=“1101010”. When the electrical charge currently stored on thefloating gate of the memory cell makes the threshold voltage of thememory cell located between V_(CSB2)−3D and V_(CSB1)+3D, the bitsequence read from the memory cell would have the binary digitcombination BS8=“0000000”. When the electrical charge currently storedon the floating gate of the memory cell makes the threshold voltage ofthe memory cell located between V_(CSB2)−2D and V_(CSB2)−3D or locatedbetween V_(CSB1)+2D and V_(CSB1)+3D, the bit sequence read from thememory cell would have the binary digit combination BS7=“0000010”. Whenthe electrical charge currently stored on the floating gate of thememory cell makes the threshold voltage of the memory cell locatedbetween V_(CSB2)−D and V_(CSB2)−2D or located between V_(CSB1)+D andV_(CSB1)+2D, the bit sequence read from the memory cell would have thebinary digit combination BS6=“0001010”. When the electrical chargecurrently stored on the floating gate of the memory cell makes thethreshold voltage of the memory cell located between V_(CSB2) andV_(CSB2)−D or located between V_(CSB1) and V_(CSB1)+D, the bit sequenceread from the memory cell would have the binary digit combinationBS5=“0101010”.

When all of the binary digits included in a bit sequence are 1's, thismeans that the corresponding memory cell has the electrical charge levelL0, L1, L6, or L7, and the reliability of CSB=1 may be high. When all ofthe binary digits included in a bit sequence are 0's, this means thatthe corresponding memory cell has the electrical charge level L2, L3,L4, or L5, and the reliability of CSB=0 may be high. However, when a bitsequence have different binary digits “0” and “1” included therein, thismeans that the corresponding memory cell has the electrical charge levelL1, L2, L5, or L6. As the threshold voltage of the corresponding memorycell is located between V_(CSB1)−3D and V_(CSB1)+3D or located betweenV_(CSB2)−3D and V_(CSB2)+3D, the reliability of CSB=1/CSB=0 may be lowdue to the fact that the error probability may be high. Therefore, thebit sequences each having one of the binary digit combinations BS2-BS7should be monitored to track the threshold voltage distributionvariation around the initial control gate voltages V_(CSB1) and V_(CSB2)(i.e., the threshold voltage distribution variation between theelectrical charge levels L1 and L2, and the threshold voltagedistribution variation between the electrical charge levels L5 and L6).

The identifying unit 116 identifies specific bit sequences each havingdifferent binary digits “0” and “1” included therein. However, as theflash memory 102 simply outputs one bit sequence of a memory cell inresponse to seven read operations each utilizing two control gatevoltages, the memory controller 104 does not know whether the bitsequence is generated from a memory cell having a threshold voltagebetween V_(CBS1)+3D and V_(CSB1)−3D or generated from a memory cellhaving a threshold voltage between V_(CBS2)+3D and V_(CSB2)−3D. Forexample, when the bit sequence BS_0 has the binary digit combination BS2(i.e., “1111110”), the memory cell M_0 may have a threshold voltagelocated between V_(CSB2)+2D and V_(CSB2)+3D or located betweenV_(CSB1)−2D and V_(CSB1)−3D. Thus, to use the aforementioned thresholdvoltage distribution tracking mechanism employed for updating thespecific bit sequences each having different binary digits “0” and “1”included therein, it is necessary to discriminate between a specific bitsequence generated from a memory cell having a threshold voltage locatedbetween V_(CSB1)−3D and V_(CSB1)+3D and a specific bit sequencegenerated from a memory cell having a threshold voltage located betweenV_(CSB2)−3D and V_(CSB2)+3D.

In one exemplary design, the identifying unit 116 identifies eachspecific bit sequence of a specific memory cell by further referring toidentified bit(s) of the specific memory cell. For example, reading theLSB data of the memory cells M_0-M_K is performed prior to reading theCSB data of the memory cells M_0-M_K. Therefore, before the control unit112 controls the flash memory 102 to output soft bits (i.e., softinformation values) of the CSB data, the LSB bits of the memory cellsM_0-M_K are known in advance. When finding a specific bit sequence withdifferent binary digits included therein, the identifying unit 116refers to an LSB bit of the specific memory cell which outputs thespecific bit sequence to thereby identify whether the specific bitsequence is generated from the specific memory cell having a thresholdvoltage located between V_(CSB1)−3D and V_(CSB1)+3D or generated fromthe specific memory cell having a threshold voltage located betweenV_(CSB2)−3D and V_(CSB2)+3D.

As mentioned above, the determining unit 114 is arranged for determiningan updated bit sequence of the at least one specific memory cellaccording to at least the specific bit sequence. By way of example, thedetermining unit 114 determines the updated bit sequence of the at leastone specific memory cell by mapping the specific bit sequence to theupdated bit sequence. In this exemplary design, the bit sequencesBS_0-BS_K generated from the physical page P_0 are buffered in thestorage device 108. When the ECC corrector 122 indicates that the bitsequences BS_0-BS_K include uncorrectable error bits, the identifyingunit 116 is operative to monitor the bit sequences BS_0-BS_K andidentify specific bit sequences each having different binary digits “0”and “1” included therein (i.e., specific bit sequences each having thebinary digit combination BS2, BS3, BS4, BS5, BS6, or BS7). Specifically,with the help of identified bits (e.g., LSBs) of the memory cellsM_0-M_K, the identifying unit 116 is capable of distinguish betweenspecific bit sequences generated from specific memory cells each havinga threshold voltage located between V_(CSB1)−3D and V_(CSB1)+3D andspecific bit sequences generated from specific memory cells each havinga threshold voltage located between V_(CSB2)−3D and V_(CSB2)+3D.

Next, the determining unit 114 determines a first mapping rule accordingto a first histogram derived from counting the specific bit sequencesthat are generated from identified specific memory cells each having athreshold voltage located between V_(CSB1)−3D and V_(CSB1)+3D, and alsodetermines a second mapping rule according to a second histogram derivedfrom counting identified specific bit sequences that are generated fromspecific memory cells each having a threshold voltage located betweenV_(CSB2)−3D and V_(CSB2)+3D. In addition, based on the first histogram,a new initial control gate voltage corresponding to a local minimum ofthe threshold voltage distribution corresponding to the electricalcharge levels L1 and L2 can be found. Similarly, based on the secondhistogram, a new initial control gate voltage corresponding to a localminimum of the threshold voltage distribution corresponding to theelectrical charge levels L5 and L6 can be found. After determining thefirst mapping rule, the determining unit 114 updates the specific bitsequences that are generated from identified specific memory cells eachhaving a threshold voltage located between V_(CSB1)−3D and V_(CSB1)+3D.Similarly, after determining the second mapping rule, the determiningunit 114 updates the specific bit sequences that are generated fromidentified specific memory cells each having a threshold voltage locatedbetween V_(CSB2)−3D and V_(CSB2)+3D. In this way, the error probabilityof the specific bit sequence is effectively lowered due to theadjustment made to the original binary digit combination. As a personskilled in the art can readily understand details directed todetermining the first and second mapping rules and updating the specificbit sequences by the first and second mapping rules after reading aboveparagraphs pertinent to the example shown FIG. 5, further description isomitted here for brevity.

Next, the bit sequences BS_0-BS_K with one or more bit sequencesupdated/adjusted by the determining unit 114 according to the first andsecond mapping rules are processed by the ECC circuit (e.g., an LDPCdecoder) 110 again. As the number of error bits can be reduced by thedetermining unit 114 collaborating with the identifying unit 116, theECC circuit 110 may have chance to successfully correct any error bitsremaining in the currently processed readout information (i.e., softinformation) of the physical page P_0. When the ECC corrector 122indicates that the decoded result generated from the ECC circuit 110 iserror-free, the read operation of reading CSB data of the memory cellsM_0-M_K of the target physical page P_0 is accomplished. On the otherhand, when the ECC corrector 122 indicates that the currently processedreadout information still contains uncorrectable error bits, thedetermining unit 116 may further adjust the first and second mappingrules to try reducing the error probability of the specific bit sequenceidentified by the identifying unit 116.

In above exemplary embodiment, the determining unit 114 performs themapping operation to update the specific bit sequences identified by theidentifying unit 116. However, this is for illustrative purposes only,and is not meant to be a limitation of the present invention. In analternative design, after the determining unit 144 determines that othercontrol gate voltages different from V_(CSB1) and V_(CSB2) should bebetter control gate voltages for identifying CSBs of the memory cellsM_0-M_K, the control unit 106 may be configured to set the initialcontrol gate voltages by voltage values found using the first histogramand the second histogram, and then control the flash memory 102 toperform seven read operations upon each of the memory cells M_0-M_Kaccording to the updated initial control gate voltages. Therefore, theflash memory 102 outputs new bit sequences BS_0-BS_M. Next, the ECCcircuit 110 processes the new bit sequences BS_0-BS_M (i.e., an updatedcodeword read from the physical page P_0) to correct any error bitsfound in the new bit sequences BS_0-BS_M. As a person skilled in the artcan readily understand related operation after reading above paragraphs,further description is omitted here for brevity.

Briefly summarized, in a case where each read operation utilizes morethan one control gate voltage (e.g., two control gate voltages) appliedto a control gate of each of the memory cells, and control gate voltagesutilized by one read operation is different from control gate voltagesutilized by another read operation, the identifying unit 116 isimplemented for identifying any specific bit sequence having differentbinary digits included therein according to each identified bit of thespecific memory cell which outputs the specific bit sequence, and thedetermining unit 114 is implemented for determining updated specific bitsequences according to the specific bit sequences identified by theidentifying unit 116. In one exemplary design, the determining unit 114determines the updated bit sequences by performing a mapping operationupon the specific bit sequences. In another exemplary design, thedetermining unit 114 determines new initial control gate voltages, andthe control unit 112 refers to the new initial control gate voltages tocontrol the flash memory 102 to output bit sequences having updatedspecific bit sequence(s) included therein.

Please refer to FIG. 7, which is a diagram illustrating an exemplary MSBreading operation of reading a soft bit (i.e., a soft information value)from a memory cell of the flash memory 102. In accordance with theexemplary threshold voltage distributions shown in FIG. 2 and FIG. 3, amemory cell with any of the electrical charge levels L0, L3, L4, and L7would store MSB=1, and a memory cell with any of the electrical chargelevels L1, L2, L5, and L6 would store MSB=0. In this example, thecontrol unit 112 determines four initial control gate voltages V_(MSB1),V_(MSB2), V_(MSB3), V_(MSB4) and a voltage spacing D, and then controlsthe flash memory 102 to perform seven read operations upon each of thememory cells M_0-M_K. Based on the voltage adjusting order OD1, theflash memory 102 sets the control gate voltage VG_0 by V_(MSB1),V_(MSB1)+D, V_(MSB1)−D, V_(MSB1)+2D, V_(MSB1)−2D, V_(MSB1)+3D, andV_(MSB1)−3D, sequentially, and further sets the control gate voltageVG_0 by V_(MSB3), V_(MSB3)+D, V_(MSB3)−D, V_(MSB3)+2D, V_(MSB3)−2D,V_(MSB3)+3D, and V_(MSB3)−3D, sequentially. Besides, based on thevoltage adjusting order OD2 that is different from the voltage adjustingorder OD1, the flash memory 102 also sets the control gate voltage VG_0by V_(MSB2), V_(MSB2)−D, V_(MSB2)+D, V_(MSB2)−2D, V_(MSB2)+2D,V_(MSB2)−3D, and V_(MSB2)+3D, sequentially, and further sets the controlgate voltage VG_0 by V_(MSB4), V _(MSB4)−D, V_(MSB4)+D, V_(MSB4)−2D,V_(MSB4)+2D, V_(MSB4)−3D, and V_(MSB4)+3D, sequentially. Specifically,the flash memory 102 determines the first binary digit of the bitsequence by four control gate voltages V_(MSB1), V_(MSB2), V_(MSB3), andV_(MSB4), determines the second binary digit of the bit sequence by fourcontrol gate voltages V_(MSB1)+D, V_(MSB2)−D, V_(MSB3)+D, andV_(MSB4)−D, determines the third binary digit of the bit sequence byfour control gate voltages V_(MSB1)−D, V_(MSB2)+D, V_(MSB3)−D, andV_(MSB4)+D, determines the fourth binary digit of the bit sequence byfour control gate voltages V_(MSB1)+2D, V_(MSB2)−2D, V_(MSB3)+2D, andV_(MSB4)−2D, determines the fifth binary digit of the bit sequence byfour control gate voltages V_(MSB)−2D, V_(MSB2)+2D, V_(MSB3)−2D, andV_(MSB4)+2D, determines the sixth binary digit of the bit sequence byfour control gate voltages V_(MSB1)+3D, V_(MSB2)−3D, V_(MSB3)+3D, andV_(MSB4)−3D, and determines the seventh binary digit of the bit sequenceby four control gate voltages V_(MSB1)−3D, V_(MSB2)+3D, V_(MSB3)−3D, andV_(MSB4)+3D. Please note that the voltage spacing D may be adjustable,and the voltage spacing values used for adjusting the control gatevoltages V_(MSB1)-V_(MSB4) may be different from one another.

As mentioned above, the flash memory 102 is capable of determining ahard bit value (i.e., MSB) of each of the memory cells M_0-M_K by theinitial control gate voltages V_(MSB1), V_(MSB2), V_(MSB3), andV_(MSB4). Therefore, each of the bit sequences BS_0-BS_M has sevenbinary digits obtained due to the above-mentioned voltages. Please notethat each of the bit sequences BS_0-BS_M acts as a soft bitrepresentative of the soft information read from a memory cell, and thebinary digit obtained due to the initial control gate voltage V_(MSB1),V_(MSB2), V_(MSB3), or V_(MSB4) may serve as a sign bit (i.e., a hardbit value).

Similarly, each bit sequence may have one of eight possible binary digitcombinations BS1-BS8. When the electrical charge currently stored on thefloating gate of the memory cell makes the threshold voltage of thememory cell higher than V_(MSB4)+3D, lower than V_(MSB1)−3D, or locatedbetween V_(MSB2)+3D and V_(MSB3)−3D, the bit sequence read from thememory cell would have the binary digit combination BS1=“1111111”. Whenthe electrical charge currently stored on the floating gate of thememory cell makes the threshold voltage of the memory cell locatedbetween V_(MSB4)+2D and V_(MSB2)+3D, located between V_(MSB1)−2D andV_(MSB1)−3D, located between V_(MSB3)−2D and V_(MSB3)−3D, or locatedbetween V_(MSB2)+2D and V_(MSB2)+3D, the bit sequence read from thememory cell would have the binary digit combination BS2=“1111110”. Whenthe electrical charge currently stored on the floating gate of thememory cell makes the threshold voltage of the memory cell locatedbetween V_(MSB4)+D and V_(MSB4)+2D, located between V_(MSB2)+D andV_(MSB2)+2D, located between V_(MSB1)−D and V_(MSB1)−2D, or locatedbetween V_(MSB3)−D and V_(MSB3)−2D, the bit sequence read from thememory cell would have the binary digit combination BS3=“1111010”. Whenthe electrical charge currently stored on the floating gate of thememory cell makes the threshold voltage of the memory cell locatedbetween V_(MSB4) and V_(MSB4)+D, located between V_(MSB2) andV_(MSB2)+D, located between V_(MSB1) and V_(MSB1)−D, or located betweenV_(MSB3) and V_(MSB3)−D, the bit sequence read from the memory cellwould have the binary digit combination BS4=“1101010”. When theelectrical charge currently stored on the floating gate of the memorycell makes the threshold voltage of the memory cell located betweenV_(MSB4)−3D and V_(MSB3)+3D or located between V_(MSB2)−3D andV_(MSB1)+3D, the bit sequence read from the memory cell would have thebinary digit combination BS8=“0000000”. When the electrical chargecurrently stored on the floating gate of the memory cell makes thethreshold voltage of the memory cell located between V_(MSB4)−2D andV_(MSB4)−3D, located between V_(MSB2)−2D and V_(MSB2)−3D, locatedbetween V_(MSB1)+2D and V_(MSB1)+3D, or located between V_(MSB3)+2D andV_(MSB3)+3D, the bit sequence read from the memory cell would have thebinary digit combination BS7=“0000010”. When the electrical chargecurrently stored on the floating gate of the memory cell makes thethreshold voltage of the memory cell located between V_(MSB4)−D andV_(MSB4)−2D, located between V_(MSB2)−D and V_(MSB2)−2D, located betweenV_(MSB1)+D and V_(MSB1)+2D, or located between V_(MSB3)+D andV_(MSB3)+2D, the bit sequence read from the memory cell would have thebinary digit combination BS6=“0001010”. When the electrical chargecurrently stored on the floating gate of the memory cell makes thethreshold voltage of the memory cell located between V_(MSB4) andV_(MSB4)−D, located between V_(MSB2) and V_(MSB2)−D, located betweenV_(MSB1) and V_(MSB1)+D, or located between V_(MSB3) and V_(MSB3)+D, thebit sequence read from the memory cell would have the binary digitcombination BS5=“0101010”.

When all of the binary digits included in a bit sequence are 1's, thismeans that the corresponding memory cell has the electrical charge levelL0, L3, L4, or L7, and the reliability of MSB=1 may be high. When all ofthe binary digits included in a bit sequence are 0's, this means thatthe corresponding memory cell has the electrical charge level L1, L2,L5, or L6, and the reliability of MSB=0 may be high. However, when a bitsequence have different binary digits “0” and “1” included therein, thismeans that the corresponding memory cell has the electrical charge levelbeing one of L0-L7. As the threshold voltage of the corresponding memorycell is located between V_(MSB1)−3D and V_(MSB1)+3D, located betweenV_(MSB2)−3D and V_(MSB2)+3D, located between V_(MSB3)−3D andV_(MSB3)+3D, or located between V_(MSB4)−3D and V_(MSB4)+3D, thereliability of MSB=1/MSB=0 may be low due to the fact that the errorprobability may be high. Therefore, the bit sequences each having one ofthe binary digit combinations BS2-BS7 should be monitored to track thethreshold voltage distribution variation around the initial control gatevoltages V_(MSB1)-V_(MSB4) (i.e., the threshold voltage distributionvariation between the electrical charge levels L0 and L1, the thresholdvoltage distribution variation between the electrical charge levels L2and L3, the threshold voltage distribution variation between theelectrical charge levels L4 and L5, and the threshold voltagedistribution variation between the electrical charge levels L6 and L7).

Similarly, as the flash memory 102 simply outputs one bit sequence of amemory cell in response to seven read operations each utilizing fourcontrol gate voltages, it is necessary to discriminate among a specificbit sequence generated from a memory cell having a threshold voltagelocated between V_(MSB1)−3D and V_(MSB1)+3D, a specific bit sequencegenerated from a memory cell having a threshold voltage located betweenV_(MSB2)−3D and V_(MSB2)+3D, a specific bit sequence generated from amemory cell having a threshold voltage located between V_(MSB3)−3D andV_(MSB3)+3D, and a specific bit sequence generated from a memory cellhaving a threshold voltage located between V_(MSB4)−3D and V_(MSB4)+3D.In one exemplary design, the identifying unit 116 identifies eachspecific bit sequence of a specific memory cell by further referring toidentified bit (s) of the specific memory cell. For example, reading theLSB data and CSB data of the memory cells M_0-M_K is performed prior toreading the MSB data of the memory cells M_0-M_K. Therefore, before thecontrol unit 112 controls the flash memory 102 to output soft bits(i.e., soft information values) of the MSB data, the LSBs and CSBs ofthe memory cells M_0-M_K are known in advance and therefore can beutilized by the identifying unit 116 to identify whether the specificbit sequence is generated from the specific memory cell having athreshold voltage located between V_(MSB1)−3D and V_(MSB1)+3D, generatedfrom the specific memory cell having a threshold voltage located betweenV_(MSB2)−3D and V_(MSB2)+3D, generated from the specific memory cellhaving a threshold voltage located between V_(MSB3)−3D and V_(MSB3)+3D,or generated from the specific memory cell having a threshold voltagelocated between V_(MSB4)−3D and V_(MSB4)+3D.

As mentioned above, the determining unit 114 is arranged for determiningan updated bit sequence of the at least one specific memory cellaccording to at least the specific bit sequence. By way of example, thedetermining unit 114 determines the updated bit sequence of the at leastone specific memory cell by mapping the specific bit sequence to theupdated bit sequence. In this exemplary design, the bit sequencesBS_0-BS_K generated from the physical page P_0 are buffered in thestorage device 108. When the ECC corrector 122 indicates that the bitsequences BS_0-BS_K include uncorrectable error bits, the identifyingunit 116 is operative to monitor the bit sequences BS_0-BS_K andidentify specific bit sequences each having different binary digits “0”and “1” included therein (i.e., specific bit sequences each having thebinary digit combination BS2, BS3, BS4, BS5, BS6, or BS7). Specifically,with the help of identified bits (e.g., LSBs and CSBs) of the memorycells M_0-M_K, the identifying unit 116 is capable of identifyingspecific bit sequences generated from specific memory cells each havinga threshold voltage located between V_(MSB1)−3D and V_(MSB1)+3D,identifying specific bit sequences generated from specific memory cellseach having a threshold voltage located between V_(MSB2)−3D andV_(MSB2)+3D, identifying specific bit sequences generated from specificmemory cells each having a threshold voltage located between V_(MSB3)−3Dand V_(MSB3)+3D, and identifying specific bit sequences generated fromspecific memory cells each having a threshold voltage located betweenV_(MSB4)−3D and V_(MSB4)+3D.

Next, the determining unit 114 determines a first mapping rule accordingto a first histogram derived from counting the specific bit sequencesthat are generated from identified specific memory cells each having athreshold voltage located between V_(MSB1)−3D and V_(MSB1)+3D,determines a second mapping rule according to a second histogram derivedfrom counting identified specific bit sequences that are generated fromspecific memory cells each having a threshold voltage located betweenV_(MSB2)−3D and V_(MSB2)+3D, determines a third mapping rule accordingto a third histogram derived from counting identified specific bitsequences that are generated from specific memory cells each having athreshold voltage located between V_(MSB3)−3D and V_(MSB3)+3D, anddetermines a fourth mapping rule according to a fourth histogram derivedfrom counting identified specific bit sequences that are generated fromspecific memory cells each having a threshold voltage located betweenV_(MSB4)−3D and V_(MSB4)+3D.

As a person skilled in the art can readily understand details of readingMSB data from the memory cells after reading above paragraphsillustrating details of reading CSB data from the memory cells, furtherdescription is omitted here for brevity.

Briefly summarized, in a case where each read operation utilizes morethan one control gate voltage (e.g., four control gate voltages) appliedto a control gate of each of the memory cells, and control gate voltagesutilized by one read operation is different from control gate voltagesutilized by another read operation, the identifying unit 116 isimplemented for identifying any specific bit sequence having differentbinary digits included therein according to each identified bit of thespecific memory cell which outputs the specific bit sequence, and thedetermining unit 114 is implemented for determining updated specific bitsequences according to the specific bit sequences identified by theidentifying unit 116. In one exemplary design, the determining unit 114determines the updated bit sequences by performing a mapping operationupon the specific bit sequences. In another exemplary design, thedetermining unit 114 determines new initial control gate voltages, andthe control unit 112 refers to the new initial control gate voltages tocontrol the flash memory 102 to output bit sequences having updatedspecific bit sequence(s) included therein.

As mentioned above, when reading soft information of the CSB data storedin the memory cells, the LSBs of the memory cells are used by theidentifying unit 116 to discriminate between specific bit sequences thatare generated from memory cells each having a threshold voltage locatedbetween V_(CSB1)−3D and V_(CSB1)+3D and specific bit sequences that aregenerated from memory cells each having a threshold voltage locatedbetween V_(CSB2)−3D and V_(CSB2)+3D. Thus, the step of reading the softinformation of the LSB data is required to be performed before the stepof reading the soft information of the CSB data. However, in analternative design, the identifying unit 116 is capable ofdiscriminating between specific bit sequences without referring to theidentified bits (e.g., LSBs) of the memory cells. Please refer to FIG.8, which is a diagram illustrating another exemplary CSB readingoperation of reading a soft bit (i.e., a soft information value) from amemory cell of the flash memory 102. In accordance with the exemplarythreshold voltage distributions shown in FIG. 2 and FIG. 3, a memorycell with any of the electrical charge levels L0, L1, L6, and L7 wouldstore CSB=1, and a memory cell with any of the electrical charge levelsL2-L5 would store CSB=0. In this exemplary embodiment, the control unit112 determines two initial control gate voltages V_(CSB1), V_(CSB2) anda voltage spacing D. As shown in sub-diagram (A) of FIG. 8, the controlunit 112 controls the flash memory 102 to perform seven first readoperations upon each of the memory cells M_0-M_K, wherein the flashmemory 102 sets the control gate voltage VG_0 by V_(CSB1), V_(CSB1)+D,V_(CSB1)−D, V_(CSB1)+2D, V_(CSB1)−2D, V_(CSB1)+3D, and V_(CSB1)−3D inthe voltage adjusting order OD1 and sets the control gate voltage VG_0by V_(CSB2), V_(CSB2)−D, V_(CSB2)+D, V_(CSB2)−2D, V_(CSB2)+2D,V_(CSB2)−3D, and V_(CSB2)+3D in the voltage adjusting order OD2 which isdifferent from the voltage adjusting order OD1. In a case where theelectrical charge stored on a floating gate of a memory cell makes thememory cell store a weak “1” due to a threshold voltage located betweenV_(CSB1) and V_(CSB1)−D, the bit sequence read from the memory cell willhave the binary digit combination BS4 (i.e., 1101010). In another casewhere the electrical charge stored on the floating gate of the memorycell makes the memory cell store a weak “1” due to the threshold voltagelocated between V_(CSB2) and V_(CSB2)+D, the bit sequence read from thememory cell will have the same binary digit combination BS4 (i.e.,1101010).

As shown in sub-diagram (B) of FIG. 8, the control unit 112 may controlthe flash memory 102 to perform seven second read operations upon eachof the memory cells M_0-M_K, wherein the flash memory 102 sets thecontrol gate voltage VG_0 by V_(CSB1), V_(CSB1)+D, V_(CSB1)−D,V_(CSB1)+2D, V_(CSB1)−2D, V_(CSB1)+3D, and V_(CSB1)−3D in the voltageadjusting order OD1 and sets the control gate voltage VG_0 by V_(CSB2),V_(CSB2)+D, V_(CSB2)−D, V_(CSB2)+2D, V_(CSB2)−2D, V_(CSB2)+3D, andV_(CSB2)−3D in the same voltage adjusting order OD1. As to the casewhere the electrical charge stored on the floating gate of the memorycell makes the memory cell store a weak “1” due to the threshold voltagelocated between V_(CSB1) and V_(CSB1)−D, the bit sequence read from thememory cell will have the binary digit combination BS4 (i.e., 1101010).However, as to another case where the electrical charge stored on thefloating gate of the memory cell makes the memory cell store a weak “1”due to the threshold voltage located between V_(CSB2) and V_(CSB2)+D,the bit sequence read from the memory cell will have a different binarydigit combination BS4′ (i.e., 1010101).

Therefore, when a first bit sequence generated from first readoperations using control gate voltages set according to differentvoltage adjusting orders (e.g., OD1 and OD2) is identical to a secondbit sequence generated from second read operations using control gatevoltages set by the same voltage adjusting order (e.g., OD1), theidentifying unit 116 knows that the first bit sequence/second bitsequence is generated from a memory cell having a threshold voltagelocated between V_(CSB1)−3D and V_(CSB1)+3D. When the first bit sequencegenerated from first read operations using control gate voltages setaccording to different voltage adjusting orders (e.g., OD1 and OD2) isdifferent from the second bit sequence generated from second readoperations using control gate voltages set by the same voltage adjustingorder (e.g., OD1), the identifying unit 116 knows that the first bitsequence/second bit sequence is generated from a memory cell having athreshold voltage located between V_(CSB2)−3D and V_(CSB2)+3D.

To put it simply, the control unit 112 of the control logic 106 controlsthe flash memory 102 to perform a plurality of read operations upon eachof the memory cells of one physical page for obtaining soft bits of thememory cells, wherein the read operations include first read operationsand second read operations each utilizing two control gate voltagesapplied to a control gate of each memory cell. The two control gatevoltages utilized by one of the first read operations are different fromthe two control gate voltages utilized by another of the first readoperations, one of the two control gate voltages utilized in each of thefirst read operations is set according to a first voltage adjustingorder, the other of the two control gate voltages utilized in each ofthe first read operations is set according to a second voltage adjustingorder different from the first voltage adjusting order. Besides, the twocontrol gate voltages utilized by one of the second read operations aredifferent from the two control gate voltages utilized by another of thesecond read operations, one of the two control gate voltages utilized ineach of the second read operations is set according to the first voltageadjusting order, and the other of the two control gate voltages utilizedin each of the second read operations is set according to the firstvoltage adjusting order. The identifying unit 116 of the control logic106 identifies a specific bit sequence with different binary digitsincluded therein by referring to a first bit sequence read from aspecific memory cell by the first read operations and a second bitsequence read from the specific memory cell by the second readoperations. After the specific bit sequences, each having differentbinary digits included therein, are correctly categorized by theidentifying unit 116, the determining unit 114 can employ theaforementioned procedure to determine the updated bit sequencescorrectly.

The read operations shown in sub-diagram (A) of FIG. 8 may be brieflysummarized as below. For performing read operations requested by thevoltage adjusting order OD1, the flash memory 102 initially utilizesV_(CSB1) to read the memory cells M_0-M_K. After that, the flash memory102 utilizes V_(CSB1)+D to read the memory cells M_0-M_K for performinganother read operation requested by the voltage adjusting order OD1.After that, the flash memory 102 utilizes V_(CSB1)−D to read the memorycells M_0-M_K for performing yet another read operation requested by thevoltage adjusting order OD1. In addition, for performing read operationsrequested by the voltage adjusting order OD2, the flash memory 102initially utilizes V_(CSB2) to read the memory cells M_0-M_K. Afterthat, the flash memory 102 utilizes V_(CSB2)−D to read the memory cellsM_0-M_K for performing another read operation requested by the voltageadjusting order OD2. After that, the flash memory 102 utilizesV_(CSB2)+D to read the memory cells M_0-M_K for performing yet anotherread operation requested by the voltage adjusting order OD2. Please notethat the voltage adjusting order OD1 is different from the voltageadjusting order OD2; however, as clearly shown in the figure, both ofthe voltage adjusting orders OD1 and OD2 makes respective initialcontrol gate voltages V_(CSB1) and V_(CSB2) first shifted toward CSB=“0”(i.e., one adjacent electrical charge level representative of a specificbit with a first binary digit) and then further shifted toward CSB=“1”(i.e., another adjacent electrical charge level representative of thespecific bit with a second binary digit). In these two weak “1” cases,the memory controller 104 receives the same bit sequence (i.e.,1101010). Thus, the memory controller 104 can not distinguish these twodifferent weak “1” cases from the received bit sequence.

The read operations shown in sub-diagram (B) of FIG. 8 may be brieflysummarized as below. The shifting direction of the control gate voltageis slightly different from that mentioned above. For performing readoperations requested by the voltage adjusting order OD1, the flashmemory 102 initially utilizes V_(CSB1) to read the memory cells M_0-M_K.After that, the flash memory 102 utilizes V_(CSB1)+D to read the memorycells M_0-M_K for performing another read operation requested by thevoltage adjusting order OD1. After that, the flash memory 102 utilizesV_(CSB1)−D to read the memory cells M_0-M_K for performing yet anotherread operation requested by the voltage adjusting order OD1. Inaddition, for performing read operations requested by another voltageadjusting order OD1, the flash memory 102 initially utilizes V_(CSB2) toread the memory cells M_0-M_K. After that, the flash memory 102 utilizesV_(CSB2)+D to read the memory cells M_0-M_K for performing another readoperation requested by the voltage adjusting order OD1. After that, theflash memory 102 utilizes V_(CSB2)−D to read the memory cells M_0-M_Kfor performing yet another read operation requested by the voltageadjusting order OD1. Please note that the same voltage adjusting orderOD1 is employed; however, as clearly shown in the figure, one voltageadjusting order OD1 makes an initial control gate voltage V_(CSB1) firstshifted toward CSB=“0” (i.e., one adjacent electrical charge levelrepresentative of the specific bit with the first binary digit) and thenfurther shifted toward CSB=“1” (i.e., another adjacent electrical chargelevel representative of the specific bit with the second binary digit),and the other voltage adjusting order OD1 makes an initial control gatevoltage V_(CSB2) first shifted toward CSB=“1” (i.e., one adjacentelectrical charge level representative of the specific bit with thesecond binary digit) and then further shifted toward CSB=“0” (i.e.,another adjacent electrical charge level representative of the specificbit with the first binary digit). In these two weak “1” cases, thememory controller 104 receives different bit sequences (i.e., 1101010and 1010101). Thus, with a proper setting of the voltage adjustingorders, the memory controller 104 can distinguish these two differentweak “1” cases from the received bit sequences. Hence, the memorycontroller 104 is capable of distinguishing these two different weak “1”cases without needing other auxiliary information (e.g., LSB data).

Please refer to FIG. 9, which is a diagram illustrating a memory systemaccording to a second exemplary embodiment of the present invention. Theexemplary memory system 900 includes a memory controller 904 and theaforementioned flash memory (e.g., a NAND-type flash memory) 102. Toread the data stored in the memory cells M_0-M_K of the target physicalpage P_0, the control gate voltages VG_0-VG_N should be properly set.Each of the memory cells 103 in this exemplary embodiment is configuredto store 3 bits, including a least significant bit (LSB), a centralsignificant bit (CSB), and a most significant bit (MSB). Thus, thememory controller 904 determines seven control gate voltages V_(LSB),V_(CSB1), V_(CSB2), V_(MSB1), V_(MSB2), V_(MSB3), and V_(MSB4), andcontrols the flash memory 102 to perform read operations according tothese configured control gate voltages. As the details of readoperations performed in the flash memory 102 are already describedabove, further description is omitted here for brevity.

The memory controller 904 is implemented to control access (read/write)of the flash memory 102. In this exemplary embodiment, the memorycontroller 904 includes, but is not limited to, a control logic 906having a control unit 912, a counting unit 914, and a comparing unit 916included therein, a receiving circuit 908 having a storage device (e.g.,a memory device) 918, and an ECC circuit 910 having an ECC detector 920and an ECC corrector 922 included therein. Please note that only theelements pertinent to the technical features of the present inventionare shown in FIG. 9 for clarity and simplicity. That is, the memorycontroller 904 may include additional elements to support otherfunctionality. As mentioned above, the threshold voltage distribution ofmemory cells 103 included in the flash memory 102 may be changed due tocertain factors such as read disturbance, write/program disturbance,and/or retention disturbance. As known to those skilled in the art, partof the memory cells 103 of one physical page is utilized for storing ECCinformation (e.g., an ECC code). Thus, the ECC circuit 910 is operativeto perform an ECC operation upon the readout information (e.g., acodeword) read from one physical page. More specifically, the ECCdetector 120 checks the correctness of the readout information, therebydetecting the existence of error bits presented in the checked readoutinformation. When notified by the ECC detector 920, the ECC corrector922 is operative for correcting the error bits found in the checkedreadout information. However, when the number of error bits existing inthe readout information exceeds a maximum number of error bits that canbe corrected by the ECC corrector 922, the ECC corrector 922 indicatesthat the readout information includes uncorrectable error bits. Thus,the control logic 906 enables the threshold voltage distributiontracking mechanism to determine the readout information which can passthe ECC parity check performed by the ECC circuit 910. Detailed aredescribed as below.

In this exemplary embodiment, the ECC circuit 910 may be aBose-Chaudhuri-Hocquenghem (BCH) decoder. The control logic 906 isarranged for controlling the flash memory 102 to perform a plurality ofread operations upon each of the memory cells M_0-M_K of the targetphysical page P_0, and determining readout information of the memorycells M_0-M_K according to binary digit distribution characteristics ofbit sequences BS_0-BS_K. The read operations include at least a firstread operation, a second read operation, and a third read operation usedfor determining control gate voltage shifting direction (s) used forfinding better control gate voltage (s). Further details are describedas below.

Please refer to FIG. 10 in conjunction with FIG. 11. FIG. 10 is adiagram illustrating the adjustment made to the control gate voltageused for reading LSB data according to a first embodiment of the presentinvention. FIG. 11 is a diagram illustrating the operation ofdetermining a shifting direction of the control gate voltage for findinga better control gate voltage used for reading LSB data according to afirst embodiment of the present invention. Due to change of thethreshold voltage distribution, the threshold voltages of some memorycells each originally programmed to have the electrical charge level L3for storing LSB=1 are distributed in the voltage range V5-V9, and thethreshold voltages of some memory cells each originally programmed tohave the electrical charge level L4 for storing LSB=0 are distributed inthe voltage range V1-V5. To have a minimum number of error bitspresented in the readout information of the target physical page P_0,the control gate voltage for reading LSB data should be preferably setby V5 shown in FIG. 10 (i.e., VT_4′ shown in FIG. 3). When the initialcontrol gate voltage V_(LSB) is set to V7 by the control unit 912 andthe flash memory 102 performs the first read operation upon memory cellsM_0-M_K according to the initial control gate voltage V_(LSB,) thenumber of error bits presented in the readout information (i.e., a firstcodeword CW_1 consisted of first bits of the bit sequences BS_0-BS_K)exceeds the maximum number of error bits that can be corrected by theECC circuit 910. Thus, the threshold voltage distribution trackingmechanism is enabled accordingly. Next, the control unit 912 updates theinitial control gate voltage V_(LSB) employed by the first readoperation by V6 which is lower than V7, and then controls the flashmemory to perform the second read operation upon memory cells M_0-M_Kaccording to the updated control gate voltage V_(LSB)′. Thus, a secondcodeword CW_2 consisted of second bits of the bit sequences BS_0-BS_K isreceived by the receiving circuit 908. Please note that the firstcodeword CW_1 is buffered in the storage device 918, and bits of thefirst codeword CW_1 buffered in the storage device 918 are transmittedto the comparing unit 916 one by one before overwritten by the incomingbits of the second codeword CW_2. The comparing unit 916 is arranged forcomparing bits of the first codeword CW_1 (i.e., first bits of the bitsequences BS_0-BS_K) and bits of the second codeword CW_2 (i.e., secondbits of the bit sequences BS_0-BS_K). The comparison result willindicate which bit position has one first bit flipping due to atransition from a first binary digit (e.g., “1”) to a second binarydigit (e.g., “0”). The counting unit 914 is coupled to the comparingunit 916 and the control unit 912, and is arranged for counting thenumber of first bit flipping between the first codeword CW_1 and thesecond codeword CW_2. That is, the counting unit 914 generates a firstcounter number N1 by counting the number of first bit flipping betweenfirst bits and second bits of the bit sequences BS_0-BS_K, wherein onefirst bit flipping occurs when the first bit and the second bit of onebit sequence have the first binary digit (e.g., “1”) and the secondbinary digit (e.g., “0”), respectively.

Next, the control unit 912 updates the current control gate voltageV_(LSB)′ employed by the second read operation by V8 which is higherthan V7, and then controls the flash memory to perform the third readoperation upon memory cells M_0-M_K according to the updated controlgate voltage V_(LSB)″. Thus, a third codeword CW_3 consisted of thirdbits of the bit sequences BS_0-BS_K is received by the receiving circuit908. Please note that the first codeword CW_1 originally buffered in thestorage device 918 will be overwritten by the second codeword CW_2;additionally, bits of the second codeword CW_2 buffered in the storagedevice 918 are transmitted to the comparing unit 916 one by one beforeoverwritten by the incoming bits of the third codeword CW_3. Thecomparing unit 916 is further arranged for comparing bits of the secondcodeword CW_2 (i.e., second bits of the bit sequences BS_0-BS_K) andbits of the third codeword CW_3 (i.e., third bits of the bit sequencesBS_0-BS_K). The comparison result will indicate which bit position hasthe second bit flipping due to a transition from the second binary digit(e.g., “0”) to the first binary digit (e.g., “1”). The counting unit 914is further arranged for counting the number of second bit flippingbetween the second codeword CW_2 and the third codeword CW_3. That is,the counting unit 914 generates a second counter number N2 by countingthe number of second bit flipping between second bits and third bits ofthe bit sequences BS_0-BS_K, wherein one second bit flipping occurs whenthe second bit and the third bit of one bit sequence have the secondbinary digit (e.g., “0”) and the first binary digit (e.g., “1”),respectively.

After receiving the first counter number N1 and the second counternumber N2 generated from the counting unit 914, the control unit 912determines the readout information which can pass the ECC parity checkby referring to the first counter number N1 and the second counternumber N2. For example, the control unit 912 determines the shiftingdirection DS of the control gate voltage according to the first counternumber N1 and the second counter number N2. More specifically, as can beseen from FIG. 10, the first counter number N1 represents the totalnumber of 0's newly identified due to shifting the control gate voltagefrom V7 to V6, and the second counter number N2 represents the totalnumber of 1's newly identified due to shifting the control gate voltagefrom V6 to V8. Thus, the value (N2−N1) is representative of a totalnumber of 1's resulted from shifting the control gate voltage from V7 toV8. In this exemplary embodiment, (N2−N1) is greater than N1, implyingthat the local minimum of the threshold voltage distributioncorresponding to the electrical charge levels L3 and L4 is located on aleft side of the initial control gate voltage V_(LSB). Based on such anobservation, the control unit 912 decides the shifting direction DSaccordingly.

After the shifting direction DS is determined, the control logic 912determines a new control gate voltage according to the shiftingdirection DS. When the readout information (i.e., a new codeword)obtained from applying the new control gate voltage to the control gateof each of the memory cells M_0-M_K of the target physical page P_0passes the ECC parity check, this implies that the codeword processed bythe ECC circuit 110 will become error-free. As the LSB data issuccessfully determined by the control unit 912 which updates thecontrol gate voltage according to the shifting direction DS, the controlunit 912 records the currently used control gate voltage as an initialcontrol gate voltage to be used by the next LSB read operation performedupon the physical page P_0.

However, when the readout information (i.e., a new codeword) obtainedfrom applying the new control gate voltage to the control gate of eachof the memory cells M_0-M_K of the physical page P_0 fails to pass theECC parity check, this implies that the codeword processed by the ECCcircuit 110 still contains uncorrectable error bits, the control logic912 will determine another control gate voltage according to theshifting direction DS. Updating the control gate voltage according tothe shifting direction DS is not stopped until the codeword iserror-free or all of the error bits presented in the codeword arecorrectable. Please note that the ECC circuit (e.g., a BCH decoder) 100has error correction capability. Therefore, the control unit 912 is notrequired to exactly shift the control gate voltage to the optimum valueV5 according to the shifting direction DS.

In above exemplary embodiment, the control unit 912 controls the flashmemory 102 to perform the first read operation which utilizes theinitial control gate voltage V_(LSB), the second read operation whichutilizes the lower control gate voltage V_(LSB)′, and the third readoperation which utilizes the higher control gate voltage V_(LSB)″,sequentially. Therefore, the initial control gate voltage V_(LSB), thelower control gate voltage V_(LSB)′ and the higher control gate voltageV_(LSB)″ are applied to the control gate of each of the memory cellsM_0-M_K, sequentially. However, this is for illustrative purposes only,and is not meant to be a limitation of the present invention.

Please refer to FIG. 12 in conjunction with FIG. 13. FIG. 12 is adiagram illustrating the adjustment made to the control gate voltageused for reading LSB data according to a second embodiment of thepresent invention. FIG. 13 is a diagram illustrating the operation ofdetermining a shifting direction of the control gate voltage for findinga better control gate voltage used for reading LSB data according to asecond embodiment of the present invention. The major difference betweenthe control gate voltage adjustment shown in FIG. 12 and the controlgate voltage adjustment shown in FIG. 10 is that the control unit 912controls the flash memory 102 to perform the first read operation whichutilizes the initial control gate voltage V_(LSB), the second readoperation which utilizes the higher control gate voltage V_(LSB)″, andthe third read operation which utilizes the lower control gate voltageV_(LSB)′, sequentially. Therefore, the initial control gate voltageV_(LSB), the higher control gate voltage V_(LSB)″ and the lower controlgate voltage V_(LSB)′ are applied to the control gate of each of thememory cells M_0-M_K, sequentially.

Similarly, when the initial control gate voltage V_(LSB) is set to V7 bythe control unit 912 and the flash memory 102 performs the first readoperation upon memory cells M_0-M_K according to the initial controlgate voltage V_(LSB), the number of error bits presented in the readoutinformation (i.e., a first codeword CW_1 consisted of first bits of thebit sequences BS_0-BS_K) exceeds the maximum number of error bits thatcan be corrected by the ECC circuit 910. Thus, the threshold voltagedistribution tracking mechanism is enabled accordingly. Next, thecontrol unit 912 updates the initial control gate voltage V_(LSB)employed by the first read operation by V8 which is higher than V7, andthen controls the flash memory 102 to perform the second read operationupon memory cells M_0-M_K according to the updated control gate voltageV_(LSB)″. Thus, a second codeword CW_2′ consisted of second bits of thebit sequences BS_0-BS_K is received by the receiving circuit 908. Thecomparing unit 916 compares bits of the first codeword CW_1 (i.e., firstbits of the bit sequences BS_0-BS_K) and bits of the second codewordCW_2′ (i.e., second bits of the bit sequences BS_0-BS_K). The comparisonresult will indicate which bit position has the first bit flipping dueto a transition from a first binary digit (e.g., “0”) to a second binarydigit (e.g., “1”). The counting unit 914 counts the number of first bitflipping between the first codeword CW_1 and the second codeword CW_2′to thereby obtain a first counter number N1′. Next, the control unit 912updates the current control gate voltage V_(LSB)″ employed by the secondread operation by V6 which is lower than V7, and then controls the flashmemory 102 to perform the third read operation upon memory cells M_0-M_Kaccording to the updated control gate voltage V_(LSB)′. Thus, a thirdcodeword CW_3′ consisted of third bits of the bit sequences BS_0-BS_K isreceived by the receiving circuit 908. The comparing unit 916 comparesbits of the second codeword CW_2′ (i.e., second bits of the bitsequences BS_0-BS_K) and bits of the third codeword CW_3′ (i.e., thirdbits of the bit sequences BS_0-BS_K). The comparison result willindicate which bit position has the second bit flipping due to atransition from the second binary digit (e.g., “1”) to the first binarydigit (e.g., “0”). The counting unit 914 counts the number of second bitflipping between the second codeword CW_2′ and the third codeword CW_3′to thereby obtain a second counter number N2′. As can be seen from FIG.11 and FIG. 13, N1′=N2−N1 and N1=N2′−N1′. Thus, after receiving thefirst counter number N1′ and the second counter number N2′ generatedfrom the counting unit 914, the control unit 912 would determine thatthe local minimum of the threshold voltage distribution corresponding tothe electrical charge levels L3 and L4 is located on a left side of theinitial control gate voltage V_(LSB). The same objective of deciding theshifting direction DS of the control gate voltage is achieved.

The operation of finding the best control gate voltage (s) used forreading the CSB data is detailed as follows. Please refer to FIG. 14,which is a diagram illustrating the adjustment made to one of thecontrol gate voltages used for reading CSB data according to anembodiment of the present invention. As mentioned above, reading CSBs ofmemory cells M_0-M_K of the target physical page P_0 requires twocontrol gate voltages V_(CSB1) and V_(CSB2). When the readoutinformation of the physical page P_0 fails to pass the ECC parity check,it means that the CSBs read from the memory cells M_0-M_K includeuncorrectable error bits. Thus, the threshold voltage distributiontracking mechanism is enabled to find better control gate voltage (s)used for reading the CSB data. In this exemplary embodiment, one of thecontrol gate voltages V_(CSB1) and V_(CSB2) is not adjusted by thecontrol unit 912, while the other of the control gate voltages V_(CSB1)and V_(CSB2) is adjusted by the control unit 912 to find the shiftingdirection of the control gate voltage. As shown in FIG. 14, under thecondition where the control gate voltage V_(CSB1) remains intact, thecontrol gate voltage V_(CSB2) is updated by the control unit 912 to findthe shifting direction DS2. In one exemplary design, the first readoperation which utilizes the initial control gate voltage V_(CSB2), thesecond read operation which utilizes the lower control gate voltageV_(CSB2)′, and the third read operation which utilizes the highercontrol gate voltage V_(CSB2)″ are performed upon each of the memorycells M_0-M_K, sequentially. In an alternative exemplary design, thefirst read operation which utilizes the initial control gate voltageV_(CSB2), the second read operation which utilizes the higher controlgate voltage V_(CSB2)″, and the third read operation which utilizes thelower control gate voltage V_(CSB2)′ are performed upon each of thememory cells M_0-M_K, sequentially. The same objective of determiningthe shifting direction DS2 pointing to the local minimum of thethreshold voltage distribution corresponding to the electrical chargelevels L5 and L6 (i.e., the location where the best control gate voltageVT_6′ is located) is achieved. As a person skilled in the art canreadily understand how to determine the shifting direction DS2 bycounting the first bit flipping between first bits and second bits ofthe bit sequences BS_0-BS_K and counting the second bit flipping betweensecond bits and third bits of the bit sequences BS_0-BS_K after readingabove paragraphs directed to finding the updated control gate voltageused for reading the LSB data, further description is omitted here forbrevity.

When the best location of the control gate voltage (i.e., VT_6′) hasbeen found by the shifting direction DS2 and the ECC corrector 922 stillindicates that the readout information obtained from using the bestcontrol gate voltage VT_6′ and the initial control gate voltage V_(CSB1)has uncorrectable errors, the control unit 912 keeps the best controlgate voltage VT_6′ intact, and starts updating the control gate voltageV_(CSB1) to find the shifting direction DS1. Please refer to FIG. 15,which is a diagram illustrating the adjustment made to the other of thecontrol gate voltages used for reading CSB data according to anembodiment of the present invention. In one exemplary design, the firstread operation which utilizes the initial control gate voltage V_(CSB1),the second read operation which utilizes the lower control gate voltageV_(CSB1)′ and the third read operation which utilizes the higher controlgate voltage V_(CSB1)″ are performed upon each of the memory cellsM_0-M_K, sequentially. In an alternative exemplary design, the firstread operation which utilizes the initial control gate voltage V_(CSB1),the second read operation which utilizes the higher control gate voltageV_(CSB1)″, and the third read operation which utilizes the lower controlgate voltage V_(CSB1)′ are performed upon each of the memory cellsM_0-M_K, sequentially. The same objective of determining the shiftingdirection DS1 pointing to the local minimum of the threshold voltagedistribution corresponding to the electrical charge levels L1 and L2(i.e., the location where the best control gate voltage VT_2′ islocated) is achieved. As a person skilled in the art can readilyunderstand how to determine the shifting direction DS1 by counting thefirst bit flipping between first bits and second bits of the bitsequences BS_0-BS_K and counting the second bit flipping between secondbits and third bits of the bit sequences BS_0-BS_K after reading aboveparagraphs directed to finding the updated control gate voltage used forreading the LSB data, further description is omitted here for brevity.Please note that the control unit 912 does not stop updating the controlgate voltage according to the shifting direction DS1 until the ECCcircuit 910 indicates that the readout information is error-free or thereadout information has error bits that are correctable.

In above examples shown in FIG. 14 and FIG. 15, one of the control gatevoltages V_(CSB1) and V_(CSB2) is not adjusted by the control unit 912,while the other of the control gate voltages V_(CSB1) and V_(CSB2) isadjusted by the control unit 912 to find one shifting direction DS1/DS2.However, in an alternative design, the shifting directions DS1 and DS2may be determined simultaneously. Please refer to FIG. 16 in conjunctionwith FIG. 17. FIG. 16 is a diagram illustrating the adjustment made toboth control gate voltages used for reading CSB data according to anembodiment of the present invention. FIG. 17 is a diagram illustratingthe operation of determining shifting directions of the control gatevoltages for finding better control gate voltages used for reading CSBdata according to an embodiment of the present invention. When thereadout information of the physical page P_0 derived from using theinitial control gate voltages V_(CSB1) and V_(CSB2) fails to pass theECC parity check, it means that the CSBs read from the memory cellsM_0-M_K include uncorrectable error bits. Thus, the threshold voltagedistribution tracking mechanism is enabled to find better control gatevoltage(s) used for reading the CSB data. As can be seen from theexemplary gray code design of the bits assigned to different electricalcharge levels L0-L7 shown in FIG. 3, one of the control gate voltagesshould be set by a lower voltage corresponding to a local minimum of thethreshold voltage distribution corresponding to the electrical chargelevels L1 and L2, and the other of the control gate voltages should beset by a higher voltage corresponding to a local minimum of thethreshold voltage distribution corresponding to the electrical chargelevels L5 and L6. To discriminate between changed bits resulted fromshifting the lower control gate voltage and changed bits resulted fromshifting the higher control gate voltage, the adjustment made to thecontrol gate voltages used for reading the CSB data should be properlyconfigured according to the gray code design of the bits assigned to theelectrical charge levels L1-L2 and L5 and L6. In this exemplaryembodiment, the control unit 912 controls the flash memory 102 toperform the first read operation which utilizes two initial control gatevoltages V_(CSB1) and V_(CSB2), the second read operation which utilizesone control gate voltage V_(CSB1)′ lower than the initial control gatevoltage V_(CSB1) and another control gate voltage V_(CSB2)′ lower thanthe initial control gate voltage V_(CSB2), and the third read operationwhich utilizes one control gate voltage V_(CSB1)″ higher than theinitial control gate voltage V_(CSB1) and another control gate voltageV_(CSB2)″ higher than the initial control gate voltage V_(CSB2),sequentially.

The comparing unit 916 compares the first bits and the second bits ofthe bit sequences BS_0-BS_K, wherein a first codeword CW_11 consisted ofthe first bits of the bit sequences BS_0-BS_K is obtained by the firstread operation, and a second codeword CW_21 consisted of the second bitsof the bit sequences BS_0-BS_K is are obtained by the second readoperation. The comparison result will indicate which bit position hasone first bit flipping due to a transition from a first binary digit(e.g., “1”) to a second binary digit (e.g., “0”), and further indicatewhich bit position has one second bit flipping due to a transition fromthe second binary digit (e.g., “0”) to the first binary digit (e.g.,“1”). Please note that, in this exemplary embodiment, the first bitflipping is resulted from shifting the control gate voltage fromV_(CSB1) to V_(CSB1)′, and the second bit flipping is resulted fromshifting the control gate voltage from V_(CSB2) to V_(CSB2)′. Thecounting unit 914 counts the number of first bit flipping between thefirst codeword CW_11 and the second codeword CW_21, and also counts thenumber of second bit flipping between the first codeword CW_11 and thesecond codeword CW_21. That is, the counting unit 914 generates a firstcounter number N1 by counting the number of first bit flipping betweenfirst bits and second bits of the bit sequences BS_0-BS_K, and generatesa second counter number N2 by counting the number of second bit flippingbetween first bits and second bits of the bit sequences BS_0-BS_K,wherein one first bit flipping occurs when the first bit and the secondbit of one bit sequence have the first binary digit (e.g., “1”) and thesecond binary digit (e.g., “0”), respectively, and one second bitflipping occurs when the first bit and the second bit of one bitsequence have the second binary digit (e.g., “0”) and the first binarydigit (e.g., “1”), respectively.

Besides, the comparing unit 916 compares the second bits and the thirdbits of the bit sequences BS_0-BS_K, wherein a third codeword CW_31consisted of the third bits of the bit sequences BS_0-BS_K is obtainedby the third read operation. The comparison result will indicate whichbit position has one third bit flipping due to a transition from thesecond binary digit (e.g., “0”) to the first binary digit (e.g., “1”),and further indicate which bit position has one fourth bit flipping dueto a transition from the first binary digit (e.g., “1”) to the secondbinary digit (e.g., “0”). Please note that, in this exemplaryembodiment, the third bit flipping is resulted from shifting the controlgate voltage from V_(CSB1)′ to V_(CSB1)″, and the fourth bit flipping isresulted from shifting the control gate voltage from V_(CSB2)′ toV_(CSB2)″. The counting unit 914 counts the number of third bit flippingbetween the second codeword CW_21 and the third codeword CW_31, and alsocounts the number of fourth bit flipping between the second codewordCW_21 and the third codeword CW_31. That is, the counting unit 914generates a third counter number N3 by counting the number of third bitflipping between second bits and third bits of the bit sequencesBS_0-BS_K, and generates a fourth counter number N4 by counting thenumber of fourth bit flipping between second bits and third bits of thebit sequences BS_0-BS_K, wherein one third bit flipping occurs when thesecond bit and the third bit of one bit sequence have the second binarydigit (e.g., “0”) and the first binary digit (e.g., “1”), respectively,and one fourth bit flipping occurs when the second bit and the third bitof one bit sequence have the first binary digit (e.g., “1”) and thesecond binary digit (e.g., “0”), respectively.

After receiving the first counter number N1, the second counter numberN2, the third counter number N3, and the fourth counter number N4generated from the counting unit 914, the control unit 912 is capable ofdetermining the shifting direction DS1 of one control gate voltageaccording to the first and third counter numbers N1 and N3, anddetermining the shifting direction DS2 of the other control gate voltageaccording to the second and fourth counter numbers N2 and N4. Morespecifically, the first counter number N1 represents the total number of0's newly identified due to shifting the control gate voltage fromV_(CSB1) to V_(CSB1)′, the second counter number N2 represents the totalnumber of 1's newly identified due to shifting the control gate voltagefrom V_(CSB2) to V_(CSB2)′. Thus, the value (N3−N1) is representative ofa total number of newly identified 1's resulted from shifting thecontrol gate voltage from V_(CSB1) to V_(CSB1)″, and the value (N4−N2)is representative of a total number of newly identified 0's resultedfrom shifting the control gate voltage from V_(CSB2) to V_(CSB2)″ Inthis exemplary embodiment, (N3−N1) is greater than N1 and (N4−N2) isgreater than N2, this implies that the local minimum of the thresholdvoltage distribution corresponding to the electrical charge levels L1and L2 is located on a left side of the initial control gate voltageV_(CSB1), and the local minimum of the threshold voltage distributioncorresponding to the electrical charge levels L5 and L6 is located on aleft side of the initial control gate voltage V_(CSB2). Based on such anobservation, the control unit 912 decides the shifting directions DS1and DS2 simultaneously. Next, based on one or both of the shiftingdirections DS1 and DS2, the control unit 912 updates one or both of thecontrol gate voltages to make the flash memory 102 generate readoutinformation (i.e., CSBs) capable of passing the ECC parity check. As aperson skilled in the art can readily understand the related operationafter reading above paragraphs, further description is omitted here forebrevity.

In above exemplary embodiment, the control unit 912 controls the flashmemory 102 to perform the first read operation which utilizes theinitial control gate voltages V_(CSB1) and V_(CSB2), the second readoperation which utilizes the control gate voltages V_(CSB1)′ andV_(CSB2)′, and the third read operation which utilizes the control gatevoltages V_(CSB1)″ and V_(CSB2)″, sequentially. However, this is forillustrative purposes only, and is not meant to be a limitation of thepresent invention. In an alternative design, the control unit 912 isallowed to control the flash memory 102 to perform the first readoperation which utilizes the initial control gate voltages V_(CSB1) andV_(CSB2), the second read operation which utilizes the control gatevoltages V_(CSB1)″ and V_(CSB2)″, and the third read operation whichutilizes the control gate voltages V_(CSB1)′ and V_(CSB2)′,sequentially. The same objective of determining the shifting directionsDS1 and DS2 in a parallel processing manner is achieved. As a personskilled in the art can readily understand details of such an alternativedesign of determining shifting directions DS1 and DS2 after readingabove paragraphs directed to the example of determining the shiftingdirection DS as shown in FIG. 12 and FIG. 13, further description isomitted here for brevity.

Regarding the case of reading MSBs of the memory cells M_0-M_K of thetarget physical page P_0, it is similar to the case of reading CSBs ofthe memory cells M_0-M_K as mentioned above. The major difference isthat each read operation for reading the MSBs requires four control gatevoltages rather than two control gate voltages. As mentioned above,reading MSBs of memory cells M_0-M_K of the target physical page P_0requires four control gate voltages V_(MSB1), V_(MSB2), V_(MSB3), andV_(MSB4). When the readout information of the physical page P_0 fails topass the ECC parity check, it means that the MSBs read from the memorycells M_0-M_K include uncorrectable error bits. Thus, the thresholdvoltage distribution tracking mechanism is enabled to find bettercontrol gate voltage (s) used for reading the MSB data. In one exemplaryembodiment, one of the control gate voltages V_(MSB1)-V_(MSB4) isadjusted by the control unit 912 to find the shifting direction of onecontrol gate voltage, while the remaining voltages of the control gatevoltages V_(MSB1)-V_(MSB4) are not adjusted by the control unit 912.Please refer to FIG. 18, which is a diagram illustrating the adjustmentmade to one of the control gate voltages used for reading MSB dataaccording to an embodiment of the present invention. As shown in FIG.18, under the condition where the control gate voltagesV_(MSB1)-V_(MSB3) remain intact, the control gate voltage V_(MSB4) isupdated by the control unit 912 to V_(MSB4)′ and V_(MSB4)″ for findingthe shifting direction DS4. When the best location of the control gatevoltage (i.e., VT_7′) has been found by the shifting direction DS4 andthe ECC corrector 922 still indicates that the readout informationobtained from using the best control gate voltage VT_7′ and the initialcontrol gate voltage V_(MSB1)-V_(MSB3) has uncorrectable errors, thecontrol unit 912 keeps the best control gate voltage VT_7′ intact, andstarts updating one of the control gate voltages V_(MSB1)-V_(MSB3) tofind another shifting direction.

Please refer to FIG. 19, which is a diagram illustrating the adjustmentmade to another of the control gate voltages used for reading MSB dataaccording to an embodiment of the present invention. As shown in FIG.19, under the condition where the control gate voltagesV_(MSB1)-V_(MSB2) and VT_7′ remain intact, the control gate voltageV_(MSB3) is updated by the control unit 912 to V_(MSB3)′ and V_(MSB3)″for finding the shifting direction DS3. When the best location of thecontrol gate voltage (i.e., VT_5′) has been found by the shiftingdirection DS3 and the ECC corrector 922 still indicates that the readoutinformation obtained from using the best control gate voltages VT_7′,VT_5′ and the initial control gate voltage V_(MSB1), V_(MSB2) hasuncorrectable errors, the control unit 912 keeps the best control gatevoltages VT_7′ and VT_5′ intact, and starts updating one of the controlgate voltages V_(MSB1) and V_(MSB2) to find another shifting direction.

Please refer to FIG. 20, which is a diagram illustrating the adjustmentmade to yet another of the control gate voltages used for reading MSBdata according to an embodiment of the present invention. As shown inFIG. 20, under the condition where the control gate voltages V_(MSB1),VT_5′, and VT_7′ remain intact, the control gate voltage V_(MSB2) isupdated by the control unit 912 to V_(MSB2)′ and V_(MSB2)″ for findingthe shifting direction DS2. When the best location of the control gatevoltage (i.e., VT_3′) has been found by the shifting direction DS2 andthe ECC corrector 922 still indicates that the readout informationobtained from using the best control gate voltages VT_7′, VT_5′, VT_3′and the initial control gate voltage V_(MSB1) has uncorrectable errors,the control unit 912 keeps the best control gate voltages VT_7′, VT_5′,and VT_3′ intact, and starts updating the last one control gate voltageV_(MSB1) to find another shifting direction.

Please refer to FIG. 21, which is a diagram illustrating the adjustmentmade to a remaining one of the control gate voltages used for readingMSB data according to an embodiment of the present invention. As shownin FIG. 21, under the condition where the control gate voltages VT_3′,VT_5′, and VT_7′ remain intact, the control gate voltage V_(MSB1) isupdated by the control unit 912 to V_(MSB1)′ and V_(MSB1)″ for findingthe shifting direction DS1. After the shifting direction DS1 isdetermined, the control unit 912 does not stop updating the control gatevoltage according to the shifting direction DS1 until the ECC circuit910 indicates that the readout information is error-free or the readoutinformation has error bits that are correctable.

As a person skilled in the art can readily understand detailedoperations of determining the shifting direction DS4/DS3/DS2/DS1 andfinding an updated control gate voltage according to the determinedshifting direction DS4/DS3/DS2/DS1 after reading above paragraphspertinent to the examples shown in FIG. 14 and FIG. 15, furtherdescription is omitted here for brevity.

In above examples shown in FIGS. 18-21, one of the four control gatevoltages is adjusted by the control unit 912 for finding a singleshifting direction DS4/DS3/DS2/DS1, while the remaining voltages of thefour control gate voltages remain intact. However, in an alternative,multiple shifting directions may be determined simultaneously. Pleaserefer to FIG. 22, which is a diagram illustrating the adjustment made totwo of the control gate voltages used for reading MSB data according toan embodiment of the present invention. In general, the shiftingprobability of the threshold voltage distribution corresponding to theupper electrical charge levels L4-L7 is greater than that of thethreshold voltage distribution corresponding to the lower electricalcharge levels L0-L3. Thus, in the beginning, the control gate voltagesV_(MSB1) and V_(MSB2) are not adjusted by the control unit 912, and thecontrol gate voltages V_(MSB3) and V_(MSB4) are adjusted by the controlunit 912 to find the shifting directions DS3 and DS4 in a parallelprocessing manner. Similarly, to discriminate between changed bitsresulted from shifting the lower control gate voltage V_(MSB3) andchanged bits resulted from shifting the higher control gate voltageV_(MSB4), the adjustment made to the two control gate voltages V_(MSB3)and V_(MSB4) should be properly configured according to the gray codedesign of the bits assigned to the electrical charge levels L4-L7. Inone exemplary design, the initial control gate voltage V_(MSB3) ischanged to V_(MSB3)′ and then changed to V_(MSB3)″, and the initialcontrol gate voltage V_(MSB4) is changed to V_(MSB4)′ and then changedto V_(MSB4)″. In another exemplary design, the initial control gatevoltage V_(MSB3) is changed to V_(MSB3)″ and then changed to V_(MSB3)′,and the initial control gate voltage V_(MSB4) is changed to V_(MSB4)″and then changed to V_(MSB4)″. The same objective of determining theshifting directions DS3 and DS4 simultaneously is achieved.

When the best locations of the control gate voltages (i.e., VT_5′ andVT_7′) have been found by the shifting directions DS3 and DS4, and theECC corrector 922 still indicates that the readout information obtainedfrom using the best control gate voltages VT_7′, VT_5′ and the initialcontrol gate voltages V_(MSB1) and V_(MSB2) has uncorrectable errors,the control unit 912 keeps the best control gate voltages VT_7′ andVT_5′ intact, and starts updating the remaining two control gatevoltages V_(MSB1) and V_(MSB2) to find other shifting directions DS1 andDS2 in a parallel processing manner.

Please refer to FIG. 23, which is a diagram illustrating the adjustmentmade to the other two of the control gate voltages used for reading MSBdata according to an embodiment of the present invention. The bestcontrol gate voltages VT_5′ and VT_7′ remain intact, and the controlgate voltages V_(MSB1) and V_(MSB2) are adjusted by the control unit 912to find the shifting directions DS1 and DS2. Similarly, to discriminatebetween changed bits resulted from shifting the lower control gatevoltage V_(MSB1) and changed bits resulted from shifting the highercontrol gate voltage V_(MSB2), the adjustment made to the two controlgate voltages V_(MSB1) and V_(MSB2) should be properly configuredaccording to the gray code design of the bits assigned to the electricalcharge levels L0-L3. In one exemplary design, the initial control gatevoltage V_(MSB1) is changed to V_(MSB1)′ and then changed to V_(MSB1)″,and the initial control gate voltage V_(MSB2) is changed to V_(MSB2)′and then changed to V_(MSB2)″. In another exemplary design, the initialcontrol gate voltage V_(MSB1) is changed to V_(MSB1)″ and then changedto V_(MSB1)′, and the initial control gate voltage V_(MSB2) is changedto V_(MSB2)″ and then changed to V_(MSB2)′. The same objective ofdetermining the shifting directions DS1 and DS2 simultaneously isachieved.

As a person skilled in the art can readily understand detailedoperations of determining multiple shifting direction DS4 and DS3 (DS2and DS1) and finding updated control gate voltages according to thedetermined shifting directions DS4 and DS3 (DS2 and DS1) after readingabove paragraphs pertinent to the examples shown in FIG. 16 and FIG. 17,further description is omitted here for brevity.

Those skilled in the art will readily observe that numerousmodifications and alterations of the device and method may be made whileretaining the teachings of the invention. Accordingly, the abovedisclosure should be construed as limited only by the metes and boundsof the appended claims.

What is claimed is:
 1. A memory controller for reading data stored in aflash memory, comprising: a control logic, for performing a plurality ofread operations upon a plurality of memory cells of the flash memory,wherein the read operations utilizes a plurality of control gatevoltages to read bits from memory cells; and a receiving circuit, forobtaining a plurality of bit sequences from the flash memory in responseto the plurality of read operations; wherein the control logic refers tothe plurality of bit sequences to determine numbers of memory cellswhose threshold voltages are located between a first control gatevoltage and a second control gate voltage of the plurality of controlgate voltages, to generate a first value; and the control logic refersto the plurality of bit sequences to determine numbers of memory cellswhose threshold voltages are located between a third control gatevoltage and a fourth control gate voltage of the plurality of controlgate voltages, to generate a second value; and the control logic updatesat least one of the plurality of control gate voltages according to thefirst value and the second value.
 2. The memory controller of claim 1,wherein the first control gate voltage is lower than the second controlgate voltage, the second control gate voltage is lower than the thirdcontrol gate voltage, and the third control gate voltage is lower thanthe fourth control gate voltage.
 3. The memory controller of claim 2,wherein the first control gate voltage and the second control gatevoltage are two adjacent control gate voltages, and the third controlgate voltage and the fourth control gate voltage are two adjacentcontrol gate voltages.
 4. A method for reading data stored in a flashmemory, comprising: performing a plurality of read operations upon aplurality of memory cells of the flash memory, wherein the readoperations utilizes a plurality of control gate voltages to read bitsfrom memory cells; obtaining a plurality of bit sequences from the flashmemory in response to the plurality of read operations; referring to theplurality of bit sequences to determine numbers of memory cells whosethreshold voltages are located between a first control gate voltage anda second control gate voltage of the plurality of control gate voltages,to generate a first value; referring to the plurality of bit sequencesto determine numbers of memory cells whose threshold voltages arelocated between a third control gate voltage and a fourth control gatevoltage of the plurality of control gate voltages, to generate a secondvalue; and updating at least one of the plurality of control gatevoltages according to the first value and the second value.
 5. Themethod of claim 4, wherein the first control gate voltage is lower thanthe second control gate voltage, the second control gate voltage islower than the third control gate voltage, and the third control gatevoltage is lower than the fourth control gate voltage.
 6. The method ofclaim 5, wherein the first control gate voltage and the second controlgate voltage are two adjacent control gate voltages, and the thirdcontrol gate voltage and the fourth control gate voltage are twoadjacent control gate voltages.
 7. An electronic device, comprising: aflash memory; and a flash memory controller, configured to control theflash memory; wherein the flash memory controller performs a pluralityof read operations upon a plurality of memory cells of the flash memory,wherein the read operations utilizes a plurality of control gatevoltages to read bits from memory cells, and the flash memory controllerobtains a plurality of bit sequences from the flash memory in responseto the plurality of read operations; wherein the flash memory controllerrefers to the plurality of bit sequences to determine numbers of memorycells whose threshold voltages are located between a first control gatevoltage and a second control gate voltage of the plurality of controlgate voltages, to generate a first value; and the flash memorycontroller refers to the plurality of bit sequences to determine numbersof memory cells whose threshold voltages are located between a thirdcontrol gate voltage and a fourth control gate voltage of the pluralityof control gate voltages, to generate a second value; and the flashmemory controller updates at least one of the plurality of control gatevoltages according to the first value and the second value.
 8. Theelectronic device of claim 7, wherein the first control gate voltage islower than the second control gate voltage, the second control gatevoltage is lower than the third control gate voltage, and the thirdcontrol gate voltage is lower than the fourth control gate voltage. 9.The electronic device of claim 8, wherein the first control gate voltageand the second control gate voltage are two adjacent control gatevoltages, and the third control gate voltage and the fourth control gatevoltage are two adjacent control gate voltages.